Hallo ich habe zwei Probleme mit der iOS Anwendung.
Das erste mir werden die Einstellungen nicht gespeichert oder geladen
Laden im FormCreate
Delphi-Quellcode:
procedure TCameraForm.FormCreate(Sender: TObject);
var
R : TBinaryReader;
begin
SaveState.StoragePath := TPath.GetHomePath;
fImageFormat := SJPEGImageExtension;
if SaveState.Stream.Size > 0 then begin
R := TBinaryReader.Create(SaveState.Stream);
try
fImageFormat := R.ReadString;
finally
R.Free;
end;
end;
end;
speichern im FormSaveState
Delphi-Quellcode:
procedure TCameraForm.FormSaveState(Sender: TObject);
var
W : TBinaryWriter;
begin
SaveState.Stream.Clear;
W := TBinaryWriter.Create(SaveState.Stream);
try
W.Write(fImageFormat);
finally
W.Free;
end;
end;
Jedesmal wenn ich die Anwendung rauskicke und neu starte ist der Wert wieder weg.
Bei Android funktioniert das ohne Probleme.
Und das speichern von der CameraComponent in ein PNG oder JPG oder co funktioniert nicht.
Das TBitmapCodecManager.SAveToStream gib jedesmal FALSE zurück
Unter Android kann ich als ImageFormat ".png" ".jpg" oder ".jpeg" mitgeben und es funktioniert
Delphi-Quellcode:
procedure TCameraForm.acScanExecute(Sender: TObject);
var
x : TBitmap;
ms : TMemoryStream;
Surf : TBitmapSurface;
begin
x := TBitmap.Create;
CameraComponent.SampleBufferToBitmap(x, TRUE);
if fImageFormat = '' then fImageFormat := SJPEGImageExtension;
ms := TMemoryStream.Create;
Surf := TBitmapSurface.Create;
try
Surf.Assign(x);
if not TBitmapCodecManager.SaveToStream(ms, Surf, fImageFormat) then begin
raise EBitmapSavingFailed.Create(SBitmapSavingFailed);
end;
finally
Surf.Free;
end;
x.Free;
ms.Seek(0, soFromBeginning);
Hat wer eine Idee warum die zwei Sachen bei mir bei iOS nicht so funktionieren wie ich es mir vorstelle?