Hallo zusammen,
ich habe folgendes Problem:
Ich will via WEB-Service eine Unterschrift versenden. (Beispiel aus dem Video:
YouTube) Das Erstellen klappt einwandfrei. Dazu codiere ich den Stream als Base64 und sende dieses. Der WEB-Service kann aber die Base64 Datei nicht entschlüsseln. Lese ich die Datei (Zwischengespeichert als Textdatei) in eine Testroutine (FMX ImageControl.Bitmap) klappt es einwandfrei.
Ich vermute hier ein Formatunterschied JPeg, BMP etc. aber wie kann ich bei einem Stream das Format mitgeben?
So erstelle ich den Base64 String und sende diesen über den WEB-Service:
Delphi-Quellcode:
...
stream := TMemoryStream.Create();
ImageControl1.Bitmap.SaveToStream(stream);
encodeString := EncodeBase64(stream.Memory, stream.Size);
unt.UnterschriftB64 := encodeString;
WS := TWebServices.Create();
er := WS.AusgabeMitUnterschrift(unt);
...
Mit diesem Test lese ich die als Text zwischengespeicherte Datei ein, Anzeige Problemlos:
Delphi-Quellcode:
...
b64 := TStringList.Create();
b64.LoadFromFile('Bild_DatenB64.txt');
// Test ob Bild enthalten...
OutStr := TBytesStream.Create(DecodeBase64(b64.Text));
//OutStr := TBytesStream.Create(DecodeBase64(unt.UnterschriftB64));
ImageControl2.Bitmap.LoadFromStream(OutStr);
...
Diese
VCL-Anwendung kann daraus aber kein Bildmachen....
Delphi-Quellcode:
...
str := TStringList.Create();
str.loadFromFile('Bild_DatenB64.txt');
OutStr := TBytesStream.Create(DecodeBase64(str.Text));
image1.Picture.Bitmap.LoadFromStream(OutStr);
...
Ich habe die Base64.txt mal als Beispiel in der Anlage abgelegt.
Was kann das sein?
Gruß
Axel