Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Image erscheint gedreht (https://www.delphipraxis.net/209782-image-erscheint-gedreht.html)

OsCor 20. Jan 2022 19:52

Delphi-Version: 10.4 Sydney

Image erscheint gedreht
 
Mir gehen die Fragen nicht aus:
In einem Formular möchte ich ein Foto (jpg) darstellen - in einem Image-Control. Klappt prima, aaaaber nur, wenn ich das Bild vorher in irgendeinem Bildbearbeitungsprogramm geöffnet (nur geöffnet!) und dann bearbeitet oder unverändert wieder abgespeichert habe. Wenn ich das nicht tue, wird das Bild um 90° gedreht angezeigt.
In der Eigenschaftenanzeige im Windows-Explorer werden die Seitenverhältnisse korrekt angezeigt. Wieso also dreht Delphi die Bilder, wenn sie im Originalzustand aus der Kamera kommen?
Laden tue ich sie so:
Delphi-Quellcode:
procedure TForm1.bEVClick(Sender: TObject);
begin
  if OpenPictureDialog1.Execute then
  begin
    EtikettV := OpenPictureDialog1.FileName;
    imEV.Picture.LoadFromFile(EtikettV); //OpenPictureDialog1.FileName);
  end;
end;
Gruß
Oswald

Benmik 20. Jan 2022 19:59

AW: Image erscheint gedreht
 
Ich würde mal in den EXIF-Daten des Originals schauen, was unter "Orientation" steht (IrfanView). Viele Programme drehen ein Bild, das einen anderen Wert als "1" hat, zur Anzeige richtig. Ich tippe mal, dass Delphi das Bild richtig anzeigt, nämlich so, wie es im Orientation-Tag steht.

himitsu 20. Jan 2022 19:59

AW: Image erscheint gedreht
 
Die Kamera stand quert ... sie hat das Foto so aufgenommen, wie sie es macht und nur gespeichert, dass die Kamera um 90° gedreht war.

Die Delphi-Komponente ließt aber Dieses nicht aus den EXIF-Daten aus (sie ist zu doof für EXIF) und stellt das Bild so dar, wie es gepeichert ist.
Andere Fotobetrachtungsprogramme sind schlauer und drehen das Bild in der Anzeige, weil es so im EXIF steht.

[edit]
Falschrum gedacht. :zwinker:

OsCor 20. Jan 2022 20:16

AW: Image erscheint gedreht
 
Die Bilder wurden tatsächlich mit um 90° gedrehter Kamera aufgenommen. Das zeigen auch die EXIF-Daten an. Anscheinend gibt es einen Automatismus, der die Bilder im Windows-Ordner „richtig rum” anzeigt und auch noch in den Dateieigenschaften die Orientierung entsprechend ändert.
Natürlich habe ich vor meiner Frage hier und in den Parallelforen nach einer Möglichkeit gesucht, die Bilder automatisiert vor der Darstellung im Formular zu drehen. Als ich aber den notwendigen Programmieraufwand sah, wendete ich mich mit Grausen ab :-) Irgendwie hatte ich in meiner Bequemlichkeit eine Eigenschaft in der Form Image.Rotate erwartet oder erhofft :roll:

Die Bilder vorher mal kurz umzuspeichern, ist angesichts der geringen Anzahl kein großer Aufwand. Auch der Nachschub wird in homöopathischen Dosen erfolgen.

Vielen Dank für die Hinweise
Oswald

Benmik 20. Jan 2022 20:26

AW: Image erscheint gedreht
 
Du kannst die Bilder doch einfach mit IrfanView verlustfrei drehen lassen, über die "B"-Option alle auf einen Rutsch. Für das verlustfreie Drehen gibt es auch Delphi-Code. "Umspeichern" klingt nicht nach verlustfrei!
Um das nicht unerwähnt zu lassen: Natürlich kannst du einfach sämtliche Bilder bearbeiten lassen. IrfanView/der Delphi-Code erkennen anhand des Orientation-Tags automatisch, wie zu drehen ist; das bedeutet bei einem Tag von "1", dass überhaupt nicht gedreht wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:13 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