![]() |
Android, ein Bitmap speichern geht ncht
Hallo Zusammen,
eine allgemeine Frage, kann es sein dass Android kein bmp kennt? Ich erstelle zur Laufzeit ein BMP und zeichne in dessen canvas. Das BMP kann ich zur Anzeige in eine TImangeViewer geben. Versuche ich nun das BMP zu speichern, bekomme ich eine Fehlermeldung das Speichern ist fehlgeschlagen. Versuche ich ein TMemo in exakt den gleichen Pfad zu speichern funktioniert es einwandfrei und auch das lesen.
Delphi-Quellcode:
//das geht
aMemoFile := GetHomePath + PathDelim + 'Memo.txt'; Memo1.Lines.SaveToFile(aMemoFile); //das geht nicht aImageFile := GetHomePath + PathDelim + 'image.bmp'; bmp.SaveToFile(aImageFile); //auch das geht nicht aImageFile := GetHomePath + PathDelim + 'image.bmp'; ImageViewer1.Bitmap := bmp; //bmp wir angezeigt. ImageViewer1.Bitmap.SaveToFile(aImageFile); Hat jemand eine Idee? |
AW: Android, ein Bitmap speichern geht ncht
Welcher Fehler?
Warum Bitmap? |
AW: Android, ein Bitmap speichern geht ncht
Zitat:
ich bekomme eine Ecxeption EBitmapSavingFailed Speichern des Bitmaps fehlgeschlagen. Warum ein bmp, nun ich erstelle temporär ein TBitmap und zeichne auf dessen Canvas. Danach möchte ich das Bitmap als File speichern. Das Bitmap wird danach einer TMSFMXWebGMaps1 Komponente als Marker übergeben. Das Teil kann leider kein Image als Stream empfangen sondern nur ein File. |
AW: Android, ein Bitmap speichern geht ncht
das Windows-Bitmapformat wird von Android nicht unterstützt. Nimm besser PNG
![]() |
AW: Android, ein Bitmap speichern geht ncht
Zitat:
Ist dir zufällig bekannt wo die PNG Klasse steckt? |
AW: Android, ein Bitmap speichern geht ncht
Kann die FMX-Bitmap-Klasse von sich aus.
|
AW: Android, ein Bitmap speichern geht ncht
Zitat:
|
AW: Android, ein Bitmap speichern geht ncht
Der Codec wird anhand der Endung erkannt.
|
AW: Android, ein Bitmap speichern geht ncht
Du musst einfach nur speichern, anhand der Datei-Erweiterung wird automatisch das passende Format gewählt.
|
AW: Android, ein Bitmap speichern geht ncht
Hallo zusammen,
das Problem vorab, ich finde die Datei nicht. irgendwie spreche ich nicht Android, ich sollte es mal mit ![]() Testhalber habe ich ein TMemo in ein File geschrieben. Ich kann auch das File lesen, doch finden kann ich es nicht.
Delphi-Quellcode:
Dem Samsung Tab habe ich eine SD-Card verpasst.
aMemoFile := TPath.GetSharedDocumentsPath + TPath.DirectorySeparatorChar + 'Memo.txt';
Memo1.Lines.add(aMemoFile); Memo1.Lines.SaveToFile(aMemoFile); Als Speicherort wird ausgegeben: /storage/emulated/0/Adroid/data/com.embarcadero.PngProblem/files/Memo.txt Ich suche nun nach Memo.txt über den Datamanager vom Tab auf "SD Card" und finde nichts. Ebenso wenig über den Windows Dateiexplorer. Kann es sein das die Files hiden sind? Auch im Gerätespeicher ist nichts zu finden. Die Memo.txt wird jedoch geladen mit Memo1.Lines.LoadFromFile(aMemoFile); Warum kann ich die Datei nicht finden? Bezüglich bmp als png speichern, sicht es etwas anders aus. Ich bekomme beim speichern keine Fehlermeldung. Doch die Datei kann geladen werden jedoch kann sie nicht gefunden wird.
Delphi-Quellcode:
Hat jemand eine Idee?aImageFile := TPath.GetSharedDocumentsPath + TPath.DirectorySeparatorChar + 'image.png'; ImageViewer1.Bitmap := bmp; //Image wird angezeigt. bmp.SaveToFile(aImageFile); //keine Fehlermeldung. if FileExists(aImageFile)then //Image wird nicht gefunden begin ImageViewer2.Bitmap.LoadFromFile(aImageFile); end; Gruß Kostas |
AW: Android, ein Bitmap speichern geht ncht
Also nochmal
Android kennt das BMP-Format nicht! Ein Bild zu speichern ist unter FMX so einfach wie Luft holen
Delphi-Quellcode:
Da ich SharedPicturesPath genommen habe und der Pfad mit
procedure TMainForm.TakePhotoFromCameraAction1DidFinishTaking( Image: TBitmap );
var LImageFilename: string; begin // Zur Kontrolle in der Form anzeigen Image1.Bitmap := Image; // Dateiname basteln LImageFilename := TPath.Combine( TPath.GetSharedPicturesPath, FormatDateTime( '"img_"yyyymmddhhnnss".png"', Now ) ); // Speichern Image.SaveToFile( LImageFilename ); // Pfad in das Label schreiben Label1.Text := LImageFilename; end;
Code:
(man beachte das emulated und informiert sich mal bei Google)
/storage/emulated/0/Pictures
finde ich die Datei
Ach ja, und wenn das als JPEG abgespeichert werden soll, dann einfach
Delphi-Quellcode:
// Dateiname basteln
LImageFilename := TPath.Combine( TPath.GetSharedPicturesPath, FormatDateTime( '"img_"yyyymmddhhnnss".jpg"', Now ) ); |
AW: Android, ein Bitmap speichern geht ncht
oh je, wahrscheinlich hat es immer funktioniert. Es ist nur ein komisches Verhalten.
Wenn der Ordner leer ist und ich erstelle über die App ein File, wird das File im Windows-Explorer nicht angezeigt auch nicht bei F5 und auch nicht wenn ich den Explorer neu starte. Kopiere ich jedoch irgendeine Datei in \Tablet\Pictures erscheinen danach auch die Files die ich per App erstellt habe. Danach funktioniert auch das aktualisieren mit F5 sofort. Ich schreibe auch in den gleichen Path \Tablet\Pictures den Inhalt eines Memo in ein Textfile. Das gleiche Verhalten. Im Dateimanager vom Tab werden die Files sofort angezeigt. Zum Thema Image als png anlegen. Das funktioniert auch einwandfrei. Wenn ich das File direkt lade etwa so:
Delphi-Quellcode:
funktioniert es nicht.
ImageViewer2.Bitmap.LoadFromFile(atmpImageFile);
Aber so funktioniert es:
Delphi-Quellcode:
bmp:=FMX.Graphics.TBitmap.Create;
bmp.LoadFromFile(atmpImageFile); ImageViewer2.Bitmap := bmp; |
AW: Android, ein Bitmap speichern geht ncht
Zitat:
Zitat:
![]() :gruebel: |
AW: Android, ein Bitmap speichern geht ncht
Danke wieder einmal himitzu,
wieder ein Puzzle weiter. :-) Dir noch eine schöne Zeit. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz