Christoph Zurnieden: EXIF-Header auswerten

Beitrag lesen

Hi,

Nej nej, watt hepp wi doch lacht! ;-)

Mir ist das Lachen mittlerweile vergangen. Ich find's einfach nur noch peinlich was da abgeht, und zwar parteiübergreifend.

Ja, ist es, aber ohne eine ordentliche Portion Galgenhumor ... ;-)
Und schau mal: wenn die sich nicht gegenseitige an die Gurgel gehen wuerden, auf was fuer Ideen koennten die in der so erhaltene Freizeit kommen? Nae, dann doch besser so.

Ich dachte jetzt eigentlich in den Specs, denn Du wolltest das doch allgemein basteln, oder doch nur speziell auf Deine Kamera hin?

Doch, doch, ich möchte das schon möglichst allgemein gestalten. Habe mir mittlerweile aber eine Vielzahl an Bildern unterschiedlichster Kameras besorgt und analysiert, und habe dabei eine ganze Reihe mir bis dahin unbekannter Tags entdeckt.

Auch welche, die nicht in den Specs standen? Ich bin da zwar nur eben druebergeflogen aber mir schien die Liste doch verdammt lang.

Mit meiner Kamera kann ich es leider nicht überprüfen ob das "Orientation"-Tag (richtig) gesetzt wird wenn ich das Bild drehe, da das Bild nur temporär gedreht wird und keine Änderung abgespeichert wird.

Mit Verlaub, aber: hae? Macht das irgendeinen Sinn, den wir augenblicklich nicht verstehen, oder ist die Gebrauchsanleitung so besch...eiden?

Das spielt keine Rolle, das Prinzip bliebe gleich.

Das Prinzip schon, und das habe ich ja auch schon erkannt.

Na, dann bin ich ja doch nicht sooo schlecht im Erklaeren, danke :-)

In meinem Fall ergibt sich aber das Problem, daß der erzeugte Thumbnail (GD-Lib) und der ausgelesene Thumbnail (exif) unterschiedliche Farbpaletten haben und somit nicht so einfach miteinander verglichen werden können. Auch nicht mit der von dir vorgestellten Methode. Ich habe schon mit den verschiedensten Komprimierungsraten gespielt, aber leider ohne Erfolg.

Nein, Komprimierungsraten haben damit nichts zu tun, das liegt an der unterschiedlichen Implementation. JPEGs haben auch keine Farbpalette, was meintest Du damit genau?
Aber die Unterschiede duerften eh nur sehr gering sein. Was kommt denn dabei raus, wenn Du beide mit ImageMagick und der erzwungenen Palette umwandelst, wie von mir beschrieben? Wie aehnlich sind die beiden Bilder? Sind die evt sogar doch gleich? Stimmt die Groesse (120x160 muss das glaube ich sein)?
Ah, stimmt die Farbtiefe?

[...] Wenn mindestens drei der vier Eckpunkte unterschiedlich sind reichen sogar die. Dann aber natuerlich nur fuer eine Genauigkeit von 90 Grad.

Naja, die 90 Grad erkenne ich auch anhand der Ratio (natürlich nicht die Drehrichtung) ;-)

Ja, ich weiss, kleiner Scherz am Rande ;-)

Gut, ich habe mich letzendlich dazu entschlossen, die 3 im Vergleich zum Orginal sinnvollen Drehungen (90, 180, 270 Grad) manuell auswählen zu lassen.

Ja, das menschliche Auge ist nunmal ein unuebertroffener Mustererkenner ;-)

Eine automatische Erkennng duerfte auch auf jeden Fall sehr kompliziert werden, das wuerde den Nutzen wahrscheinlich bei weitem uebersteigen. Dafuer braucht man wohl auch mehr Kenntnisse in der Graphikbearbeitung als wir beide zusammen haben ;-)

Aber ich muss schon sagen, das meine Primitivloesung erstaunlich gut funktioniert, wundert mich selber. Auch ohne hochgradig komplexe und vor allem patentierte Mustererkennung. Ist allerdings auch nicht sonderlich skalierbar und verreckt bei einem anderem Datensatz wahrscheinlich erbaermlich (ich habe meinen aber nicht ausgesucht, Du kannst die Quellen gerne kontrollieren) aber trotzdem ... ;-)

In einem späteren Stadium dieses Skripts werde ich allerdings das Problem der automatischen Drehrichtungserkennung wieder aufnehmen. Ich werde dazu aber auf jeden Fall nicht mehr direkt die eingebettete (exif-)Vorschaugrafik verwenden, sondern eine Kopie derselben[1] (damit sie mit GD-Lib gerechnet wird),

Mmh ... ich glaueb nicht, das das so funktioniert, JPEG ist eine Kompressionstechnik mit Verlust.

und anhand der Farbpalette von [1] den Vergleich mit dem verkleinerten Orginal[2] (ebenfalls GD-Lib gerechnet) versuchen, wobei [2] die Farpalette von [1] zugewiesen wird. Schau' mer mal.

Ich glaube immer noch, das die Unterschiede zu klein sind, als das sie meine, ja zugegebenermassen ziemlich brutale Hashmethode ueberleben koennten. Hast Du schon irgendetwas an Code fertig? Ich kann allerdings hier nichts ausprobieren, mein Kiste ist kaputt, ich arbeite z.Z. auf einem altem Laptop (P1-133/32MiB RAM). Unter anderem auch mit englischer Tastatur, deshalb die Umlaute mit '-e'. Ja, ich weiss, das kann man umbasteln, aber dafuer bin ich einfach zu faul ;-)

so short

Christoph Zurnieden