Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
560 Beiträge
 
Delphi 12 Athens
 
#68

AW: JPG-Datei drehen und speichern -> Verlust der Exif-Daten

  Alt 20. Jul 2020, 11:55
Orientation := PWORD(pPropItem.value)^; Ich habe nach gesehen, ich denke, so ist es richtig.
Das kann nur bei Little Endian klappen, weil es eben 4 Bytes sind, Word sind nur 2; dann würde aber sogar PByte reichen. Kann kaum glauben, dass es bei dir kein PUInt32 geben soll, aber probiers doch mal mit PCardinal, das ist doch das Gleiche. Notfalls typisier es doch einfach selbst.
Ich habe hier JPG sowohl mit Intel als auch mit Motorola; ich probiere später mal aus, wo es einen Unterschied macht und wo nicht. Mir scheint, GDI+ ist wie VBA, dass dort einiges hinter den Kulissen ausgeglichen wird; wenn du die Werte direkt ausliest (daran arbeite ich gerade), dann führt kein Weg an der Beachtung der Endianess vorbei.

EDIT: Wie ich es mir schon dachte, Microsoft ändert alle Angaben VBA-mäßig zu Intel (Little Endian), egal was im EXIF steht. Das betrifft nicht nur das Orientation Tag, sondern vermutlich alle. Man kommt also im Falle des Orientation Tags mit PByte(pPropItem.value) aus.

(Ist bei euch die Formatierung von meinem Beitrag oben auch neben der Spur? Ich habe zigmal versucht, das zu ändern, ohne Erfolg.)

Geändert von Benmik (20. Jul 2020 um 15:04 Uhr)
  Mit Zitat antworten Zitat