Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi ContentType="image/bmp" in Delphi laden (https://www.delphipraxis.net/117332-contenttype%3D-image-bmp-delphi-laden.html)

Logic 16. Jul 2008 00:41


ContentType="image/bmp" in Delphi laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich musste auf Vista wechseln und bin nicht sehr zufrieden wie meine Windows Kontakte nun verwaltet werden.
Deshalb hab' ich mich entschlossen, auch um bisl wieder zu Programmieren mir nen eigenes Adressbuch zu programmieren, was aber die vorhandenen Windows Kontakt Dateien ausliest. Das funktioniert auch ohne Probleme, dank des XML Formats.

Jetzt habe ich mich gefragt, ob ich auch die Kontaktbilder in Delphi laden kann.

Die Bilder sind meines wissens wie in einer Mail codiert. Habt ihr ne Ahnung? Hab mal den Bild Content als txt Datei angehängt.

Zitat:

<c:PhotoCollection><c:Photo c:ElementID="da870704-2aed-4612-97d6-2e6e06e2abab"><c:LabelCollection><c:Label>UserTile </c:Label></c:LabelCollection><c:Value c:ContentType="image/bmp" c:Version="1" c:ModificationDate="2008-07-09T17:41:19Z">Qk1YfAAAAAAAAFAAAAAoAAAAfgAAAH4AAAAB ABAAAwAAAAh8AAAAAAAAAAAAAAAAAAAAAAAAAPgA
AOAHAAAfAAAAAAAAAAAAAAAAAAAAAAAYx/e+1r7Wtte+1rbXvra2977Wtte+1rbXvta21rbWtte+
....
tte+t77Xvra21763vte+tra3tre21762tte+tr63vra21ra2tt e+trbXvra2t7aWtre2lra2tpa2
traWtra2lra3vpa2traWtra2lra2tra2174=</c:Value></c:Photo></c:PhotoCollection>
Wie schon erwähnt vollständiger Code in der TXT Datei.

mfg
Logic

sx2008 16. Jul 2008 02:01

Re: ContentType="image/bmp" in Delphi laden
 
Das ist eine Base64-Codierung.
http://www.delphipraxis.net/internal...ect.php?t=1153

Logic 17. Jul 2008 21:16

Re: ContentType="image/bmp" in Delphi laden
 
Also ich mir die SZCodeBaseX Routine installiert...

und probiere nun folgendes, aber er zeigt mir nur nen leeres (also einfach nix) in meinem Image an:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var
  strm: TFileStream;
  ss: TStringStream;
  sl: TStringList;
  s: string;
  BMP: TBitmap;
begin
  strm := TFileStream.Create( 'test.bmp', fmCreate );
  sl := TStringList.Create;
  ss := TStringStream.Create(s);
  try
    strm.Position := 0;
    sl.LoadFromFile( 'photo.txt' );
    s := sl.Text;
    SZDecodeBase64(ss, strm);
  finally
    sl.Free;
    ss.Free;
    strm.Free;
    BMP := TBitmap.Create;
    try
      BMP.LoadFromFile('test.bmp');
      Image1.Picture.Assign(BMP);
    finally
      BMP.Free;
    end;
  end;
Wer ne Idee?

sx2008 17. Jul 2008 23:11

Re: ContentType="image/bmp" in Delphi laden
 
Die Datei photo.txt enthält nicht nur die Base64 codierten Daten, sondern auch noch XML-Elemente.
Das bringt SZDecodeBase64() ins "Schleudern".

Logic 18. Jul 2008 06:24

Re: ContentType="image/bmp" in Delphi laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also daran kann es nicht liegen, den habe ich schon entfernt. Benutzte folgende Datei:

Bernhard Geyer 18. Jul 2008 06:48

Re: ContentType="image/bmp" in Delphi laden
 
Zitat:

Zitat von Logic
Also daran kann es nicht liegen, den habe ich schon entfernt. Benutzte folgende Datei:

Entferne mal die Zeilenumbrüche aus der Datei. Diese sind durch deinen XML-Parser/Writer unnötiger und für eine einfache Base64-Decodierung störent ergänzt worden.

Logic 20. Jul 2008 23:43

Re: ContentType="image/bmp" in Delphi laden
 
Also habe den Fehler gefunden:
das hier
Delphi-Quellcode:
sl.LoadFromFile( 'photo.txt' );
s := sl.Text;
muss vor das:
Delphi-Quellcode:
ss := TStringStream.Create(s);
dann klappt der Rest :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz