Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Android, ein Bitmap speichern geht ncht (https://www.delphipraxis.net/182335-android-ein-bitmap-speichern-geht-ncht.html)

Sir Rufo 18. Okt 2014 11:23

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:
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;
Da ich SharedPicturesPath genommen habe und der Pfad mit
Code:
/storage/emulated/0/Pictures
(man beachte das emulated und informiert sich mal bei Google)
finde ich die Datei
  • Android (Eigene Dateien App):
    Code:
    Gerätespeciher/Pictures
  • Windows (Explorer):
    Code:
    <Gerät>\Tablet\Pictures
Warum? Weil dieser Pfad auch dann existiert, wenn keine externe Speicherkarte angeschlossen wurde. Darum steht im Pfad auch emulated!

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 ) );

Kostas 18. Okt 2014 16:34

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:
ImageViewer2.Bitmap.LoadFromFile(atmpImageFile);
funktioniert es nicht.

Aber so funktioniert es:
Delphi-Quellcode:
  bmp:=FMX.Graphics.TBitmap.Create;
  bmp.LoadFromFile(atmpImageFile);
  ImageViewer2.Bitmap := bmp;

himitsu 18. Okt 2014 17:27

AW: Android, ein Bitmap speichern geht ncht
 
Zitat:

Zitat von Kostas (Beitrag 1276508)
Delphi-Quellcode:
  aMemoFile := TPath.GetSharedDocumentsPath + TPath.DirectorySeparatorChar + 'Memo.txt';
  Memo1.Lines.add(aMemoFile);
  Memo1.Lines.SaveToFile(aMemoFile);
Dem Samsung Tab habe ich eine SD-Card verpasst.
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.
...


Zitat:

Zitat von MEissing (Beitrag 1276401)
Siehe Googles:
Die verbieten seit Android 4.4.2 das direkte Schreiben auf die SD Karte....

;-)

aus http://www.delphipraxis.net/182322-f...ml#post1276401

:gruebel:

Kostas 18. Okt 2014 21:22

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 13:26 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz