Hallo zusammen,
ich versuche ein Bild von der IOS Kamera an einen Websevice zu senden.
(FMX Delphi 10.4, XCode 12.5.1)
Was funktioniert:
Delphi-Quellcode:
Var ltDocument:String;
lcStream:TStringStream;
lcBitmap:TBitmap;
begin
lcBitmap:=TBitmap.Create;
lcStream:=TStringStream.Create;
Try
lcBitmap.Width:=100;
lcBitmap.Height:=100;
lcBitmap.Canvas.BeginScene;
lcBitmap.Canvas.Fill.Color:=TAlphaColors.Red;
lcBitmap.Canvas.FillRect(Rect(0,0,lcBitmap.Width,lcBitmap.height),0,0,AllCorners,1);
lcBitmap.Canvas.EndScene;
lcBitmap.SaveToStream(lcStream);
ltDocument:=TNetEncoding.Base64.Encode(lcStream.DataString);
--> ltDocument an Webservice senden
Finally
lcStream.Free;
End;
end;
Die Bitmap (wird ja bei SaveToStream als PNG gespeichert) kommt via Webservice in Delphi 7 an und kann nach Dekodierung UTF->String und Decode Base64 als PNG
geöffnet werden.
------------------------------------
Was nicht funtkioniert:
Snippet(1): speichern Bild in TImage.
CameraComponent.SampleBufferToBitmap(imgCamera.Bitmap, True);
Snippet(2): Senden an WebsService
Delphi-Quellcode:
Var ltDocument:String;
lcStream:TStringStream;
begin
lcStream:=TStringStream.Create;
Try
imgCamera.Bitmap.SaveToStream(lcStream);
ltDocument:=TNetEncoding.Base64.Encode(lcStream.DataString);
..
..
Bei der letzten Zeile kommt die
Exception:
"Keine Zuordnung für
Unicode-Zeichen in der Multibyte-Zielcodeseite vorhanden"
Was für eine Konvertierung könnte da denn erforderlich sein für einen PNG Stream ?
Grüße
Thomas