Einzelnen Beitrag anzeigen

friedt99

Registriert seit: 17. Mär 2010
46 Beiträge
 
#1

FMX Bitmap von Kamera an Webservice senden

  Alt 28. Okt 2021, 21:48
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

Geändert von friedt99 (29. Okt 2021 um 08:10 Uhr)
  Mit Zitat antworten Zitat