AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bilder speichern

Ein Thema von masterzibu · begonnen am 24. Sep 2014 · letzter Beitrag vom 23. Okt 2014
Antwort Antwort
masterzibu

Registriert seit: 23. Sep 2014
11 Beiträge
 
#1

AW: Bilder speichern

  Alt 8. Okt 2014, 10:42
OK Danke, das weiss ich nun.

Aber wie sieht das mit einem Ordner erzeugen auf einem Android Smartphone aus. Wie funktioniert das, dass ich dort meine Handykamerabilder ablegen kann, sehe da überhaupt nicht durch...

grüsse
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.011 Beiträge
 
Delphi 2009 Professional
 
#2

AW: Bilder speichern

  Alt 8. Okt 2014, 10:53
Basierend auf dieser SO Antwort:
ImageContainer.Bitmap.SaveToFile(System.IOUtils.TPath.GetDocumentsPath + System.SysUtils.PathDelim + 'myfile.jpg');
(Bin gerade selber mit der Android Kamera beschäftigt - allerdings in Java, hoffe dass der Tipp weiterhilft)
Michael Justin
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#3

AW: Bilder speichern

  Alt 8. Okt 2014, 11:27
Es gibt übrigens auch TPath.Combine, um Pfade und Dateinamen zu kombinieren.

Müsste in etwa so aussehn.
ImageContainer.Bitmap.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'myfile.jpg')); Man könnte TPath.GetDocumentsPath auch mit IncludePathDelimiter aufrufen, welches den Delimiter anhängt, wenn noch keiner vorhanden ist.
Aber anhand des Namens (GetDocumentsPath und nicht Dir) müsste da bereits der Delimiter enthalten sein.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 8. Okt 2014 um 11:30 Uhr)
  Mit Zitat antworten Zitat
masterzibu

Registriert seit: 23. Sep 2014
11 Beiträge
 
#4

AW: Bilder speichern

  Alt 13. Okt 2014, 13:13
OK Danke für die Antworten, funktioniert so weit.
Und wie genau stelle ich die gespeicherten Bilder in einer Liste dar?
Und wie zeige ich dann ein ausgewähltes Bild in einem Timage?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.549 Beiträge
 
Delphi 12 Athens
 
#5

AW: Bilder speichern

  Alt 13. Okt 2014, 14:03
Indem du die Dateinamen einliest, sie in einer Listenkomponente darstellst?
Und beim Wechsel der Selektierung liest du den aktuell gewählten Dateinamen aus der Liste und lädst das Bild in eine Imagekomponente.


PS: Bitmap.SaveToFile(... + 'myfile.jpg'); speichert zwar das Bild in einer Datei, aber auch wenn die Datei *.jpg heißt, ist darin natürlich ein Bitmap (*.bmp), da Bitmap halt ein Bitmap ist und auch nur Bitmaps speichern kann.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (13. Okt 2014 um 14:05 Uhr)
  Mit Zitat antworten Zitat
masterzibu

Registriert seit: 23. Sep 2014
11 Beiträge
 
#6

AW: Bilder speichern

  Alt 13. Okt 2014, 14:13
OK danke,probier das mal.
Habe aber schon ein problem beim Anzeigen eines Bildes.
Speichere das Bild so:

Delphi-Quellcode:
procedure TForm6.TakePhotoFromCameraAction1DidFinishTaking(Image: TBitmap);
begin
 Image1.Bitmap.Assign(Image) ;
 Image1.Bitmap.SaveToFile(TPath.Combine(TPath.GetDocumentsPath, 'myfile.jpg'));
end;
Und so möchte ich es wieder Anzeigen:

Delphi-Quellcode:
procedure TForm11.Button123Click(Sender: TObject);
begin
  Image1.bitmap.LoadFromFile('myfile.jpg');
end;
Da kommt aber auf dem Smartphone die Fehlermeldung: Zugriffsverletzung bei Adresse 788526E8 beim Zugriff auf Adresse 0000000.
Was mach ich falsch?

Geändert von mkinzler (13. Okt 2014 um 14:19 Uhr) Grund: Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.880 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Bilder speichern

  Alt 13. Okt 2014, 14:22
Beim Laden sollte man genausowenig relative Pfade verwenden. Bau Dir den absoluten, entsprechend der Speicherroutine zusammen.

Btw. Bitte verwende Delphi-Tags.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
793 Beiträge
 
#8

AW: Bilder speichern

  Alt 13. Okt 2014, 18:29
PS: Bitmap.SaveToFile(... + 'myfile.jpg'); speichert zwar das Bild in einer Datei, aber auch wenn die Datei *.jpg heißt, ist darin natürlich ein Bitmap (*.bmp), da Bitmap halt ein Bitmap ist und auch nur Bitmaps speichern kann.
Zumindest Firemonkey/XE5 ist intelligenter als man denkt:

Delphi-Quellcode:
procedure TBitmap.SaveToFile(const AFileName: string; const SaveParams: PBitmapCodecSaveParams = nil);
begin
  TBitmapCodecManager.SaveToFile(AFileName, Self, SaveParams);
end;


class function TBitmapCodecManager.SaveToFile(const AFileName: string; const Bitmap: TBitmap;
  const SaveParams: PBitmapCodecSaveParams = nil): Boolean;
var
  Codec: TCustomBitmapCodec;
  Descriptor: TBitmapCodecClassDescriptor;
begin
  Result := False;
  if Assigned(FBitmapCodecClassDescriptors) then
    for Descriptor in FBitmapCodecClassDescriptors do
      if SameText(ExtractFileExt(AFileName), Descriptor.Extension, loUserLocale) and Descriptor.CanSave then
      begin
        Codec := Descriptor.BitmapCodecClass.Create;
        try
          Result := Codec.SaveToFile(AFileName, Bitmap, SaveParams);
        finally
          Codec.Free;
        end;
      end;
end;
Ich war auch (vor einiger Zeit) erstaunt, dass das so einfach geht.

Gruß,
Olli

Edit: Ich war zu lahm...

Geändert von Olli73 (13. Okt 2014 um 18:32 Uhr) Grund: Edit: Ich war zu lahm...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: Bilder speichern

  Alt 13. Okt 2014, 18:38
@Olli73

Evtl. war ich nur schneller
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 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