FrankieB: EXIF-Header auswerten

Hallo Forum,

bin gerade dabei ein Auswertprogramm für die EXIF-Header von Digitalbildern zu schreiben.

Ich lese alle vefügbaren Informationen mit

$exif = exif_read_data($img);

aus.

Soweit kein Problem. Allerdings komme ich bei der Auswertung/Interpretation der Werte folgender Schlüssel des Ergebnis-Arrays (=$exif) nicht weiter:

[ComponentsConfiguration]
[MakerNote]
[FileSource]

Ich vermute, daß es sich dabei um irgendwelche Binärdaten handelt.

Folgende Umwandlungen habe ich auf die Werte schon angewandt um ein "lesbares" Ergebnis zu bekommen:

bin2hex($wert)
hexdec($wert)
chr(hexdec($wert))

Ohne Erfolg, bzw. das Ergebnis war auch nicht weniger kryptisch als der ursprüngliche Wert.

Meine Fragen an euch:

Kann man diese Werte entschlüsseln, und wenn ja wie (Funktion bzw.  Algorithmus)?

Wer kennt eine gute Dokumentation über EXIF-Header?

Grüsse
Frankie

  1. Hallo,

    mein Posting wurde, bevor überhaupt darauf geantwortet wurde, bereits 1x als "nicht hilfreich" gewertet. Und ich frage mich jetzt warum. Was gibt es denn an meinem Posting bzw. an meinen Fragen auszusetzen?

    Formfehler? Inhaltsfehler?

    Grüsse

    Frankie

    1. FrankieB,
      Hier scheint heute ein Nicht-hilfreich-Clicker unterwegs zu sein, auch in anderen Threads.

      Ich schließ mich deinem Kopfschütteln an (und handle mir damit wohl gleich ein „nicht hilfreich“ ein).

      Live long and prosper,
      Gunnar

      --
      „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
      1. Hallo Gunnar,

        Hier scheint heute ein Nicht-hilfreich-Clicker unterwegs zu sein, auch in anderen Threads.

        na dann ... bin ich beruhigt ;-)

        Grüsse
        Frankie

      2. Hallo Gunnar,

        Ich schließ mich deinem Kopfschütteln an (und handle mir damit wohl gleich ein „nicht hilfreich“ ein).

        Aber auch ein mehrfaches "hilfreich" ;-)

        Grüsse
        Frankie

  2. Lieber FrankieB,

    $exif = exif_read_data($img);

    [ComponentsConfiguration]
    [MakerNote]
    [FileSource]

    Deine Indices finde ich in der PHP-Doku zu EXIF nicht. Außerdem bin ich in diesen EXIF-Dingen sehr neu.

    Sorry, kann Dir nicht helfen. :-(

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Hallo Felix,

      Deine Indices finde ich in der PHP-Doku zu EXIF nicht. Außerdem bin ich in diesen EXIF-Dingen sehr neu.

      Die Seite kenn ich schon, trotzdem danke.

      Falls es dich beruhigt: Ich bin auch neu auf diesem Gebiet. _Sehr_ neu sogar. Gestern erst habe ich mir eine etwas bessere DigiCam gekauft. Jetzt wollte ich mir einfach auf die Schnelle ein Testtool schreiben, mit Hilfe dessen ich die unterschiedliche Qualität von Fotos anhand Belichtungszeit, Blende, etc. (für meine Ansprüche) vergleichen kann, um damit Erkenntnisse für den Einsatz der Kamera in der Praxis zu gewinnen.

      Folgende Werte stehen mir zur Auswertung zur Verfügung, die problematischen Werte habe ich mit ****** markiert, da es sich bei diesen laut Forumsvorschau (und auch meinen eigenen Erkenntnissen) um Binärdaten handeln soll.

      Beispiel:

      ----------------------------------

      100DSCIM/PICT0001.JPG

      ----------------------------------

      Array
      (
          [FileName] => PICT0001.JPG
          [FileDateTime] => 1131036680
          [FileSize] => 652604
          [FileType] => 2
          [MimeType] => image/jpeg
          [SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, EXIF, INTEROP
          [COMPUTED] => Array
              (
                  [html] => width="1600" height="1200"
                  [Height] => 1200
                  [Width] => 1600
                  [IsColor] => 1
                  [ByteOrderMotorola] => 0
                  [ApertureFNumber] => f/2.8
                  [Thumbnail.FileType] => 2
                  [Thumbnail.MimeType] => image/jpeg
              )

      [ImageDescription] => Digital StillCamera
          [Make] => Traveler
          [Model] => DC-8300
          [Orientation] => 1
          [XResolution] => 72/1
          [YResolution] => 72/1
          [ResolutionUnit] => 2
          [Software] => Ver 2.05SG
          [DateTime] => 2005:11:03 17:51:20
          [YCbCrPositioning] => 2
          [Exif_IFD_Pointer] => 266
          [THUMBNAIL] => Array
              (
                  [Compression] => 6
                  [Orientation] => 1
                  [XResolution] => 72/1
                  [YResolution] => 72/1
                  [ResolutionUnit] => 2
                  [JPEGInterchangeFormat] => 1036
                  [JPEGInterchangeFormatLength] => 12306
                  [YCbCrPositioning] => 2
              )

      [ExposureTime] => 1/50
          [FNumber] => 28/10
          [ExposureProgram] => 2
          [ISOSpeedRatings] => 200
          [ExifVersion] => 0220
          [DateTimeOriginal] => 2005:11:03 17:51:20
          [DateTimeDigitized] => 2005:11:03 17:51:20
          [ComponentsConfiguration] => ******
          [ShutterSpeedValue] => 567/100
          [ApertureValue] => 30/10
          [ExposureBiasValue] => 0/10
          [MaxApertureValue] => 31/10
          [MeteringMode] => 2
          [LightSource] => 0
          [Flash] => 1
          [MakerNote] =>  ******
          [FlashPixVersion] => 0100
          [ColorSpace] => 1
          [ExifImageWidth] => 1600
          [ExifImageLength] => 1200
          [RelatedSoundFile] =>
          [InteroperabilityOffset] => 890
          [FileSource] => ******
          [CustomRendered] => 0
          [ExposureMode] => 0
          [WhiteBalance] => 0
          [DigitalZoomRatio] => 100/100
          [FocalLengthIn35mmFilm] => 35
          [SceneCaptureType] => 0
          [GainControl] => 0
          [Contrast] => 0
          [Saturation] => 0
          [Sharpness] => 0
          [SubjectDistanceRange] => 0
          [InterOperabilityIndex] => R98
          [InterOperabilityVersion] => 0100
      )

      Sorry, kann Dir nicht helfen. :-(

      Macht nix, allein der Wille zu helfen zählt!

      Danke dir, Felix.

      Liebe Grüsse

      Frankie

      1. Lieber FrankieB,

        <Vermutung reliabilty="spekulativ: 100%">  
        
        >     [ComponentsConfiguration] => ******  
        >     [MakerNote] =>  ******  
        >     [FileSource] => ******  
        
        Diese Angaben sind proprietäre Werte des Camera-Herstellers und haben mit der (im PHP-Handbuch beschriebenen) Spezifikation nix zu tun.  
        </Vermutung>
        

        Sorry, kann Dir nicht helfen. :-(

        Macht nix, allein der Wille zu helfen zählt!

        Hehe, wollen tu ich sehr oft, auch wenn's nix nützt. ;-)

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

        1. Hallo,

          <Vermutung reliabilty="spekulativ: 100%">

          [ComponentsConfiguration] => ******
              [MakerNote] =>  ******
              [FileSource] => ******
          Diese Angaben sind proprietäre Werte des Camera-Herstellers und haben mit der (im PHP-Handbuch beschriebenen) Spezifikation nix zu tun.
          </Vermutung>

            
          In der [EXIF 2.2-Spezifikation](http://www.exif.org/Exif2-2.PDF) kommen diese Bezeichner durchaus vor.  
            
          Vielleicht helfen dem OP noch diese [EXIF-PHP-Experimente](http://www.et.fh-merseburg.de/person/meinike/PHP/exif/).  
            
          MfG, Thomas  
          
          
          1. Hallo Thomas,

            In der EXIF 2.2-Spezifikation kommen diese Bezeichner durchaus vor.

            Vielleicht helfen dem OP noch diese EXIF-PHP-Experimente.

            Deine Seite zu diesem Thema habe ich bei meinen eigenen Recherchen natürlich auch schon gefunden ;-). Allerdings erst nachdem mein Skript schon fertig hatte.

            Im Prinzip hole ich meine Daten ähnlich wie in diesem Beispiel:
            http://www.et.fh-merseburg.de/person/meinike/PHP/exif/exiftest3.php

            Wie auch bei mir, sind in deinem Beispiel die Inhalte von [ComponentsConfiguration] und [MakerNote] anscheinend binäre Daten (Vermutung).

            Da Du dich mit dieser Thematik schon länger und auch intensiver auseinandergesetzt hast: weißt Du, was sich hinter diesen "kryptischen" Werten verbirgt? Für meine Zwecke brauche ich diese Werte zwar nicht unbedingt, interessiert mich aber trotzdem mehr darüber zu erfahren.

            Leider bin ich absoluter Neuling was Digitalbilder betrifft und hätte dich gerne noch gefragt, wie ich es schaffe, daß Vorschaubilder in meinen Bildedateien gespeichert werden, also den Eintrag $exif_data['THUMBNAIL']['THUMBNAIL'] erzeugen kann. Auch interessieren würde mich, ob es möglich ist, selsbt erzeugte Thumbnails in den EXIF-Header reinzuschreiben.

            Grüsse
            Frankie

            1. Hallo,

              Da Du dich mit dieser Thematik schon länger und auch intensiver auseinandergesetzt hast: weißt Du, was sich hinter diesen "kryptischen" Werten verbirgt? Für meine Zwecke brauche ich diese Werte zwar nicht unbedingt, interessiert mich aber trotzdem mehr darüber zu erfahren.

              Wenn es Binaerdaten sind, dann wird wohl nur der Hersteller der Kamera Angaben zum Inhalt machen koennen. In den Specs steht -- so aus dem Kopf zitiert -- etwas von "ANY" als Inhaltstyp. Vielleicht geben das Handbuch der Kamera oder die Website des Herstellers etwas her.

              Leider bin ich absoluter Neuling was Digitalbilder betrifft und hätte dich gerne noch gefragt, wie ich es schaffe, daß Vorschaubilder in meinen Bildedateien gespeichert werden, also den Eintrag $exif_data['THUMBNAIL']['THUMBNAIL'] erzeugen kann.

              Das sollte per Voreinstellung so sein oder vielleicht gibt es eine spezielle Option im Kameramenue.

              Auch interessieren würde mich, ob es möglich ist, selsbt erzeugte Thumbnails in den EXIF-Header reinzuschreiben.

              Ich halte das nicht fuer ausgeschlossen und vielleicht koennen das auch irgendwelche Tools. Mehr als eigene Kommentare habe ich noch nicht in die Bilder geschrieben.

              MfG, Thomas

              1. Hallo Thomas,

                Wenn es Binaerdaten sind, dann wird wohl nur der Hersteller der Kamera Angaben zum Inhalt machen koennen. In den Specs steht -- so aus dem Kopf zitiert -- etwas von "ANY" als Inhaltstyp. Vielleicht geben das Handbuch der Kamera oder die Website des Herstellers etwas her.

                Genau das dachte ich mir auch, nur leider finde ich im Handbuch nichts dazu. Mit keiner der mir bekannten PHP-exif-Funktionen schaffe ich es, mir ein mitgespeichertes Thumbnail anzeigen zu lassen. Gut, wenn keiner mitgespeichert wurde ist mir das schon klar. Allerdings enthält $exif_data['THUMBNAIL'] durchaus Werte in [JPEGInterchangeFormatLength], die vermuten lassen, daß da etwas mitgespeichert worden sein könnte (z.B. Bytes des Vorschaubildes). Der Schlüssel $exif_data['THUMBNAIL']['THUMBNAIL'] ist aber niemals mit dabei. Ich habe auch schon mit Bildern anderer Kameras experimentiert.

                Beispiel:

                Array
                (
                    [Compression] => 6
                    [Orientation] => 1
                    [XResolution] => 72/1
                    [YResolution] => 72/1
                    [ResolutionUnit] => 2
                    [JPEGInterchangeFormat] => 1036
                    [JPEGInterchangeFormatLength] => 12306
                    [YCbCrPositioning] => 2
                )

                Array
                (
                    ...
                    [JPEGInterchangeFormatLength] => 15520
                    ...
                )

                Array
                (
                    ...
                    [JPEGInterchangeFormatLength] => 11837
                    ...
                )

                Das sollte per Voreinstellung so sein oder vielleicht gibt es eine spezielle Option im Kameramenue.

                Leider nicht.

                Ich halte das nicht fuer ausgeschlossen und vielleicht koennen das auch irgendwelche Tools. Mehr als eigene Kommentare habe ich noch nicht in die Bilder geschrieben.

                Ich werde noch ein bisschen rumexperimentieren, und, falls ich es hinbekomme werde ich es kurz hier in diesem Thread melden, vielleicht interesiert sich ja außer mir noch wer dafür.

                Grüsse
                Frankie

                1. Hallo,

                  Allerdings enthält $exif_data['THUMBNAIL'] durchaus Werte in [JPEGInterchangeFormatLength], die vermuten lassen, daß da etwas mitgespeichert worden sein könnte (z.B. Bytes des Vorschaubildes). Der Schlüssel $exif_data['THUMBNAIL']['THUMBNAIL'] ist aber niemals mit dabei.

                  Probiere es mal mit exif_thumbnail() [Beispiel].

                  MfG, Thomas

                  1. Hallo Thomas,

                    Probiere es mal mit exif_thumbnail() [Beispiel].

                    Das habe ich - leider erfolglos - auch schon probiert.

                    Mittlerweile gehe ich davon aus, daß die Exif-Thumbnails bei mir einfach nicht geschrieben werden, zumindest nicht so, daß diese mit den (Standard-)PHP-Funktionen extrahieren kann. Vielleicht schaffe ich es ja irgendwie, die Bilddatei Byte-für-Byte zu durchsuchen und so die Thumbnail-Daten zu finden. Sowas habe ich mit binären Daten allerdings noch nie gemacht, daher halte ich dieses Unterfangen bei meinem Wissensstand für eher aussichtslos.

                    Gut, wenn ich es nicht schaffe dann ist das aber auch nicht weiter schlimm, da ich unabhängig davon Thumbnails generieren lasse (und auch abspeichere). Hätte mich aber trotzdem gefreut, wenn ich mit einfachen Mitteln auf die eingebetteten Thumbnails hätte zugreifen können, weil der Performancegewinn im Vergleich zum "Runterrechnen" erheblich sein dürfte.

                    Ansonsten vielen Dank für deine Hilfe, und solltest Du noch interessante Links zu diesem Thema kennen, immer nur her damit ;-)

                    Grüsse
                    Frankie

  3. Hallo!

    bin gerade dabei ein Auswertprogramm für die EXIF-Header von Digitalbildern zu schreiben.

    Ich lese alle vefügbaren Informationen mit

    $exif = exif_read_data($img);

    Ich hab mich gestern mit dieser EXIF Bibliothek gespielt. Ganz durchblickt hab ichs auch noch nicht. Aber vielleicht hilfts dir ja.

    mfg
      frafu

  4. Hi,

    Soweit kein Problem. Allerdings komme ich bei der Auswertung/Interpretation der Werte folgender Schlüssel des Ergebnis-Arrays (=$exif) nicht weiter:

    [ComponentsConfiguration]
    [MakerNote]
    [FileSource]

    Ich vermute, daß es sich dabei um irgendwelche Binärdaten handelt.

    Da vermutest Du richtig.
    Das erste bekommst Du wahrscheinlich noch durch einfaches Ausprobieren raus, aber die beiden anderen wahrscheinlich schon nicht mehr.
    Libexif kennt einige der MakerNotes, aber auch nicht alle (PEL nutzt Libexif wenn ich mich nicht irre, FraFru hat den Link gepostet)
    Warum Du keine Thumbnails ziehen kannst wundert mich aber.

    Die Kamerabauer sind aber mittlerweile leider auch dahintergestiegen, das Software billiger als Hardware ist und verraten nicht alles. Siehe z.B. die Gelegenheiten, da eine Aenderung in der Software die technischen Moeglichkeiten einer Kamera erhoehte (ich glaube es war Canon, gleiche Hardware mit unterschiedlicher Software und deutlich unterschiedlichem Preis) und den Hassel mit den Rohdaten der Bilder. Nikon stellt sich da z.B. recht quer, ist aber wahrlich nicht der einzige.

    Schade eigentlich, das Du die Datei nicht temporaer zum selber probieren online gestellt hast *hint-hint* ;-)

    so short

    Christoph Zurnieden

    1. Moin Christoph,

      Warum Du keine Thumbnails ziehen kannst wundert mich aber.

      mich auch ;-)

      Schade eigentlich, das Du die Datei nicht temporaer zum selber probieren online gestellt hast *hint-hint* ;-)

      Stimmt, darum habe ich das eben mal nachgeholt:

      http://www.brazil.de/_test/exif/exif_data.php

      Vielleicht kannst Du ja was mit den Daten anfangen.

      In diesem Zusammenhang hätte ich auch eine Frage bzw. Bitte an alle Forumler: Wer möchte mir zum Testen Bilder möglichst unterschiedlicher Kameras (wenn's geht nicht zuuu gross) zur Verfügung stellen? Wer mir diesbezüglich helfen möchte, der kann diese Bilder einfach an meine E-Mail-Adresse schicken. Ich werde diese Bilder nur zum Testen verwenden und später auch wieder löschen.

      so short

      so long

      Frankie

      P.S.:
      Was macht eigentlich deine Schriftstellerkarriere?

      1. Hi,

        Schade eigentlich, das Du die Datei nicht temporaer zum selber probieren online gestellt hast *hint-hint* ;-)

        Stimmt, darum habe ich das eben mal nachgeholt:

        http://www.brazil.de/_test/exif/exif_data.php

        Ganz schoene Fummelei, bis man da zum Bild kommt.

        Vielleicht kannst Du ja was mit den Daten anfangen.

        Ich habe erstmal einfach libexif (Frontend: "exif") drueberlaufen lassen:
        (Die genaue Bedeutung entnehme bitte dem Exif-Standard, Link hast Du ja)

        ComponentsConfiguration: Y Cb Cr -
        FileSource: DSC
        MakerNote: <100 Bytes of unknown data>

        MakerNote (0x927c) ist leider irgendein proprietaerer Mist und nur fuer einige einzelne Modelle entschluesselt worden, fuer Deines wohl leider nicht. Ich habe auch noch Image-ExifTool-5.72 (http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-5.72.tar.gz Ist Perl, laeuft auch auf Windows) probiert, das sagte "Bad MakerNotes SubDirectory", was auch immer das heissen mag, ich habe nicht in die Quellen geschaut.

        Die Thumbnails hast Du herausbekommen sehe ich?

        P.S.:
        Was macht eigentlich deine Schriftstellerkarriere?

        Aufgrund fruehzeitig eingestandener Unfaehigkeit fuehre ich sie gnadenlos [sic!] weiter ;-)

        so short

        Christoph Zurnieden

        1. Hallo Christoph,

          Ganz schoene Fummelei, bis man da zum Bild kommt.

          Naja, wie Manns[tm] nimmt. Hätte ich mein Skript "einfacher" gehalten und die Warnungen einfach ignoriert, hätte ich zumindest keine Probleme mit den eingebetteten Thumbnails gehabt. Aber ich bin halt nunmal so veranlagt, daß ich erstmal das Fehler in meinem Skript suche, insbesonders dann, wenn ich Neuland (Digicam, exif) betrete.

          Ich habe erstmal einfach libexif (Frontend: "exif") drueberlaufen lassen:
          (Die genaue Bedeutung entnehme bitte dem Exif-Standard, Link hast Du ja)

          ComponentsConfiguration: Y Cb Cr -
          FileSource: DSC
          MakerNote: <100 Bytes of unknown data>
          [...]
          Ich habe auch noch Image-ExifTool-5.72 (http://www.sno.phy.queensu.ca/~phil/exiftool/Image-ExifTool-5.72.tar.gz Ist Perl, laeuft auch auf Windows) probiert, das sagte "Bad MakerNotes SubDirectory", was auch immer das heissen mag, ich habe nicht in die Quellen geschaut.

          Danke für deine Recherche. In etwa soweit war ich auch schon ;-)

          Vorläufig werde ich aber keine weiteren Anstrengungen mehr in diese Richtung unternehmen. Bei Gelegenheit schreibe ich den Hersteller mal an (hätte ich auch gleich machen können, aber Wald, Bäume ...) und frage ihn, was er da für "Bad MakerNotes" reinschreibt.

          Was macht eigentlich deine Schriftstellerkarriere?
          Aufgrund fruehzeitig eingestandener Unfaehigkeit fuehre ich sie gnadenlos [sic!] weiter ;-)

          Dann wünsche ich dir ein gutes Weihnachtsgeschäft ,-)

          Grüsse
          Frankie

          1. Hi,

            Ganz schoene Fummelei, bis man da zum Bild kommt.

            Naja, wie Manns[tm] nimmt. Hätte ich mein Skript "einfacher" gehalten und die Warnungen einfach ignoriert, hätte ich zumindest keine Probleme mit den eingebetteten Thumbnails gehabt. Aber ich bin halt nunmal so veranlagt, daß ich erstmal das Fehler in meinem Skript suche, insbesonders dann, wenn ich Neuland (Digicam, exif) betrete.

            Ne ne, ich meinte schon Dein Konstrukt, das sich hinter dem Link des Thumbnails nicht das Bild direkt verbirgt, sondern eine Seite mit dem Bild drin. Einfach mal mit der rechten Maustaste auf das Thumbnail und dann "Save target as ..." (je nach Browser und Spache natuerlich auch anderes) bringt nicht den gewuenschten Effekt.

            Danke für deine Recherche. In etwa soweit war ich auch schon ;-)

            Ja, was denn? Zwei von den Dreien, die Dir noch fehlten hatte ich immerhin noch gefunden! ;-)

            Vorläufig werde ich aber keine weiteren Anstrengungen mehr in diese Richtung unternehmen. Bei Gelegenheit schreibe ich den Hersteller mal an (hätte ich auch gleich machen können, aber Wald, Bäume ...) und frage ihn, was er da für "Bad MakerNotes" reinschreibt.

            Wenn dabei etwas auch nur entfernt Nuetzliches rauskommt, gebe ich glatt einen aus!

            Ich habe es zwar nie probiert, aber ich glaube, die wollen mit dem Verkauf der Informationen einfach noch zusaetzlich Geld scheffeln.

            Was macht eigentlich deine Schriftstellerkarriere?
            Aufgrund fruehzeitig eingestandener Unfaehigkeit fuehre ich sie gnadenlos [sic!] weiter ;-)

            Dann wünsche ich dir ein gutes Weihnachtsgeschäft ,-)

            Auch mal 'ne Idee >;->

            so short

            Christoph Zurnieden

            1. Hallo Christoph,

              Ne ne, ich meinte schon Dein Konstrukt, das sich hinter dem Link des Thumbnails nicht das Bild direkt verbirgt, sondern eine Seite mit dem Bild drin. Einfach mal mit der rechten Maustaste auf das Thumbnail und dann "Save target as ..." (je nach Browser und Spache natuerlich auch anderes) bringt nicht den gewuenschten Effekt.

              Ach so, das meintest Du ;-) Aber "Save image as ..." (oder so ähnlich, habe gerade nur deutsche Versionen zur Hand) dürfte doch funktionieren, oder wird da etwa ein falscher Header ausgeliefert? Bei mir zumindest hat das bis jetzt browserübergreifend funktioniert.

              [..] Bei Gelegenheit schreibe ich den Hersteller mal an (hätte ich auch gleich machen können, aber Wald, Bäume ...) und frage ihn, was er da für "Bad MakerNotes" reinschreibt.

              Wenn dabei etwas auch nur entfernt Nuetzliches rauskommt, gebe ich glatt einen aus!

              Nene, das geht dann auf meine Rechnung ;-)

              Ich habe es zwar nie probiert, aber ich glaube, die wollen mit dem Verkauf der Informationen einfach noch zusaetzlich Geld scheffeln.

              Wenn sie antworten und mitteilen, daß diese Tags speziell für, sagen wir mal Photoshop, gedacht sind, dann hättest Du sicherlich recht.

              Dann wünsche ich dir ein gutes Weihnachtsgeschäft ,-)

              Auch mal 'ne Idee >;->

              Schreib' halt mal was harrypottermässiges ;-[1]

              Um nochmal auf das Thema Digitalbilder zurückzukommen: Im Moment bin ich dabei eine weitere Herausforderung anzunehmen: Wenn ich ein Bild von einer Digitalkamera mit eingebettetem Thumbnail habe, kann es sein, daß das Orginalbild, z.B. mit einer Bildbearbeitungssoftware gedreht wurde (zum Einstieg begrenzen wir die möglichen Drehungen auf 90, 180 und 270 Winkelgrad). Leider wird dabei der eingebettete Thumbnail nicht mitgedreht. Es gibt sicherlich auch Software die das bewerkstelligt, ich möchte das aber mit "Bordmitteln" lösen. Einfach festzustellen ist z.B., ob sich die ursprüngliche Ratio (= auch die des ungedrehten Orginalbilds) von der des eingebetteten Thumbnails signifikant unterscheidet (es gibt auch Rundungsfehler im 1-2 Pixelbereich). Leider kann ich damit nur die Fälle abdecken, bei denen die Drehrichtung bekannt ist, und sich die Ratio unterscheidet. Woran ich derzeit noch scheitere ist die Drehrichtung herauszufinden, also die des unverändert eingebetteten Thumbnails in Relation zum (veränderten) Bild. Any hints?

              Grüsse
              Frankie

              [1] ich habe zwar noch keine einzige Zeile dieser Megaseller gelesen, aber schon häufiger gelesen, daß sich diese anscheinend ganz ordentlich verkaufen ;-)

              1. Hi,

                Ach so, das meintest Du ;-) Aber "Save image as ..." (oder so ähnlich, habe gerade nur deutsche Versionen zur Hand) dürfte doch funktionieren, oder wird da etwa ein falscher Header ausgeliefert? Bei mir zumindest hat das bis jetzt browserübergreifend funktioniert.

                Ja, damit bekomme ich das Thumbnail, aber nicht das Bild, was ich hinter dem Link erwartete, den das Thumbnail auszeichnet.
                Aehm ... mal anders:
                Ich wollte das komplette Originalbild, das 660kb grosse Dingen direkt aus Deiner Kamera. Das Thumbnail ist verlinkt. Klickt man nun auf das Thumbnail bekommt man eine Seite, in der das Originalbild eingebettet ist.
                Da dem Link selber nichts anzusehen war, hatte ich die Funktion meines Browsers benutzen wollen das direkt zu speichern, was sich hinter dem Link befindet, das Linkziel auf Englisch "target". Bei Deiner Art der Verlinkung bekomme ich aber nur die HTML-Seite in die das Bild eingebettet ist, nicht das Bild selber. CIh hatte also erwartet, das das Thumbnail direkt und ohne Umwege mit dem grossem Originalbild verlinkt ist.
                Puh ... jetzt verstaendlicher?
                Oder noch schlimmer? ;-)

                Ich habe es zwar nie probiert, aber ich glaube, die wollen mit dem Verkauf der Informationen einfach noch zusaetzlich Geld scheffeln.

                Wenn sie antworten und mitteilen, daß diese Tags speziell für, sagen wir mal Photoshop, gedacht sind, dann hättest Du sicherlich recht.

                Naja, fuer die gratis beiliegende eigene Software macht das ja wohl kaum Sinn, oder? Gut, falls sie keine Schweinereien verbergen wollen natuerlich.

                Dann wünsche ich dir ein gutes Weihnachtsgeschäft ,-)

                Auch mal 'ne Idee >;->

                Schreib' halt mal was harrypottermässiges ;-[1]

                Du meinst eine, mittels einer harmlosen kleinen Kindergeschichte kaschierten satirischen Abrechnung mit dem System?

                Einfach festzustellen ist z.B., ob sich die ursprüngliche Ratio (= auch die des ungedrehten Orginalbilds) von der des eingebetteten Thumbnails signifikant unterscheidet (es gibt auch Rundungsfehler im 1-2 Pixelbereich). Leider kann ich damit nur die Fälle abdecken, bei denen die Drehrichtung bekannt ist, und sich die Ratio unterscheidet. Woran ich derzeit noch scheitere ist die Drehrichtung herauszufinden, also die des unverändert eingebetteten Thumbnails in Relation zum (veränderten) Bild. Any hints?

                Exif-Tag: "Orientation"
                Aber das hilft Dir natuerlich nur, wenn's da auch eingetragen ist, klar.

                Ich befuerchte, da bleibt Dir nur eine Bildanalyse uebrig. Ich koennte Dir einige statistische Methoden nennen, aber einfach ist das wahrlich nicht und der Rechenaufwand ist nur wenig kleiner als brute-force.
                Ich bin allerdings auch nicht gerade der Graphikspezialist, vielleicht gibt's da ja noch den einen oder anderen Trick.

                so short

                Christoph Zurnieden

                1. Moin Christoph,

                  Ja, damit bekomme ich das Thumbnail, aber nicht das Bild, was ich hinter dem Link erwartete, den das Thumbnail auszeichnet.

                  Sorry, gestern stand ich etwas auf der Leitung, man sollte einfach gelegentlich früher schlafen gehen ...

                  Wenn sie antworten und mitteilen, daß diese Tags speziell für, sagen wir mal Photoshop, gedacht sind, dann hättest Du sicherlich recht.

                  Naja, fuer die gratis beiliegende eigene Software macht das ja wohl kaum Sinn, oder? Gut, falls sie keine Schweinereien verbergen wollen natuerlich.

                  Die gratis beiliegende Software habe ich, ehrlich gesagt, noch nicht angeschaut. Und selbst wenn es damit ginge, wäre das nicht in meinem Sinne, da ich ja eben auf solch' proprietären Kram verzichten möchte. Ich strebe eine reine PHP-Lösung an. Daß ich damit sicher nicht alle meine Vorstellungen umsetzen kann ist zwar suboptial, aber ändern kann ich es auch nicht. Außerdem bin ich noch in der Phase des Auslotens meiner bzw. der Möglichkeiten der verwendeten Skriptsprache.

                  Du meinst eine, mittels einer harmlosen kleinen Kindergeschichte kaschierten satirischen Abrechnung mit dem System?

                  So wie sich die deutsche Politik derzeit darstellt, dürfte das doch kein Problem sein ;-)

                  Exif-Tag: "Orientation"
                  Aber das hilft Dir natuerlich nur, wenn's da auch eingetragen ist, klar.

                  Das dachte/hoffte ich ursprünglich auch, der isses aber nicht. Eingetragen wird er bei meinen Bildern schon. Es ist weder der "Orientation"-Tag in exif['Orientation'] noch exif['THUMBNAILS']['Orientation']. Zu vermuten ist, daß dieser Tag nur dann korrekt gesetzt wird, wenn ich das Bild mit Bordmitteln der Kamera ("in der Kamera") drehe und nicht mit einer x-beliebigen Bildbearbeitungssoftware. Werde meine Vermutung später noch überprüfen.

                  Ich befuerchte, da bleibt Dir nur eine Bildanalyse uebrig. Ich koennte Dir einige statistische Methoden nennen, aber einfach ist das wahrlich nicht und der Rechenaufwand ist nur wenig kleiner als brute-force.

                  Darauf wird's wohl hinauslaufen. Oder auf "manuelles" drehen. Als "statistische" Methode habe ich mir schon überlegt, ein mehr oder wenig dichtes Raster sowohl über den generierten, als auch über den extrahierten Thumbnail zu legen, um dann die Farbwerte an besimmten Rasterpunkten miteinander zu vergleichen. Dazu müssten beide Thumbnails in der Fläche (X x Y) exakt gleich gross sein. Soweit kein Problem. Etwas problematischer dürfte sich die (möglichst exakt) gleich starke Komprimierung darstellen, damit die Farbwerte der Punkte auch sinnvoll miteinander verglichen werden können. Wenn das so geht wie ich mir vorstelle, könnten damit auch "gespiegelte" Bilder einfach erkannt werden. Das Raster würde ich nur so dicht wie gerade eben nötig wählen (Tests), und bei "unerwarteten" Ergebnissen einfach engmaschiger legen. Vielleicht kann der Rasteralgorithmus auch "lernfähig" gemacht werden (=> Statistik).

                  Grüsse
                  Frankie

                  1. Hi,

                    Die gratis beiliegende Software habe ich, ehrlich gesagt, noch nicht angeschaut.

                    Die koennte fuer das Reengineering (bischen viele e's, oder? ;-) nuetzlich sein, aber in diesem Fall wohl auch eher nicht.

                    Und selbst wenn es damit ginge, wäre das nicht in meinem Sinne, da ich ja eben auf solch' proprietären Kram verzichten möchte. Ich strebe eine reine PHP-Lösung an. Daß ich damit sicher nicht alle meine Vorstellungen umsetzen kann ist zwar suboptial, aber ändern kann ich es auch nicht. Außerdem bin ich noch in der Phase des Auslotens meiner bzw. der Möglichkeiten der verwendeten Skriptsprache.

                    Die PHP-Buildins zur Bildbearbeitung beinhalten meines Wissens alle noetigen Primitiven. Nur stehen natuerlich die harten Speicher- und Rechenzeitbegrenzungen im Weg, deshalb kannst Du groesseres nur mit den Thumbnails anstellen. Aber darauf wolltest Du Dich ja eh beschraenken.

                    Du meinst eine, mittels einer harmlosen kleinen Kindergeschichte kaschierten satirischen Abrechnung mit dem System?

                    So wie sich die deutsche Politik derzeit darstellt, dürfte das doch kein Problem sein ;-)

                    Warum die zeitliche Einschraenkung? >;->

                    Exif-Tag: "Orientation"
                    Aber das hilft Dir natuerlich nur, wenn's da auch eingetragen ist, klar.

                    Das dachte/hoffte ich ursprünglich auch, der isses aber nicht.

                    Ich habe zwar nicht in die Specs geschaut, aber ich bin mir doch recht sicher, das es dieser Tag ist. Vielleicht findest Du aber trotzdem noch etwas a la "Rotation" o.ae.
                    Das ist aber nicht das Problem, denn wie Du schon richtig festgestellt hast ...

                    Eingetragen wird er bei meinen Bildern schon.

                    ... wird er nicht richtig eingetragen. Oder hast Du unterschiedliche Eintraege fuer hochkant geschossene Bilder? Aber dafuer waeren ja teuere mechanische Sensoren noetig, die koennten ja einige Eurocent kosten, um Gottes Willen, kann man doch nicht machen!
                    *grummel*

                    Es ist weder der "Orientation"-Tag in exif['Orientation'] noch exif['THUMBNAILS']['Orientation']. Zu vermuten ist, daß dieser Tag nur dann korrekt gesetzt wird, wenn ich das Bild mit Bordmitteln der Kamera ("in der Kamera") drehe und nicht mit einer x-beliebigen Bildbearbeitungssoftware.

                    Ich glaube Photoshop kann sowas nach Wunsch setzen.

                    Werde meine Vermutung später noch überprüfen.

                    Ich befuerchte, da bleibt Dir nur eine Bildanalyse uebrig. Ich koennte Dir einige statistische Methoden nennen, aber einfach ist das wahrlich nicht und der Rechenaufwand ist nur wenig kleiner als brute-force.

                    Darauf wird's wohl hinauslaufen. Oder auf "manuelles" drehen. Als "statistische" Methode habe ich mir schon überlegt, ein mehr oder wenig dichtes Raster sowohl über den generierten, als auch über den extrahierten Thumbnail zu legen, um dann die Farbwerte an besimmten Rasterpunkten miteinander zu vergleichen. Dazu müssten beide Thumbnails in der Fläche (X x Y) exakt gleich gross sein. Soweit kein Problem. Etwas problematischer dürfte sich die (möglichst exakt) gleich starke Komprimierung darstellen, damit die Farbwerte der Punkte auch sinnvoll miteinander verglichen werden können. Wenn das so geht wie ich mir vorstelle, könnten damit auch "gespiegelte" Bilder einfach erkannt werden. Das Raster würde ich nur so dicht wie gerade eben nötig wählen (Tests), und bei "unerwarteten" Ergebnissen einfach engmaschiger legen. Vielleicht kann der Rasteralgorithmus auch "lernfähig" gemacht werden (=> Statistik).

                    Ja, sowas aehnliches hatte ich auch mal zur Aehnlichkeitsberechnung getestet. Nur halt ohne Raster, sondern mit einigen Tricks der Bildbearbeitung, die ImageMagick so draufhat.
                    Ich glaube Christoph Schnauss hat mein Machwerk noch online, Momang ... ah, hat er noch (da muss ich ihm aber so langsam wirklich mal einen fuer ausgeben! Na, mal wieder ein guter Grund Berlin zu besuchen ;-) http://selfhtml.christoph-schnauss.de/artikel/javascript/similarity/picture-search.html. Vielleicht kannst Du davon etwas gebrauchen.

                    so short

                    Christoph Zurnieden

                    1. Hallo Christoph,

                      Die PHP-Buildins zur Bildbearbeitung beinhalten meines Wissens alle noetigen Primitiven. Nur stehen natuerlich die harten Speicher- und Rechenzeitbegrenzungen im Weg, deshalb kannst Du groesseres nur mit den Thumbnails anstellen. Aber darauf wolltest Du Dich ja eh beschraenken.

                      Ganau. Und genau da liegt der Hase im Pfeffer.

                      So wie sich die deutsche Politik derzeit darstellt, dürfte das doch kein Problem sein ;-)

                      Warum die zeitliche Einschraenkung? >;->

                      Zur Zeit ist es aber besonders schlimm, oder?

                      Ich habe zwar nicht in die Specs geschaut, aber ich bin mir doch recht sicher, das es dieser Tag ist. Vielleicht findest Du aber trotzdem noch etwas a la "Rotation" o.ae.

                      nope, ich lasse wirklich alle exif-Tags (bzw. solche, die dafür gehalten werden) auslesen, da ist viel dabei, aber nichts was in diese Richtung geht (außer "Orientation" natürlich).

                      ... wird er nicht richtig eingetragen. Oder hast Du unterschiedliche Eintraege fuer hochkant geschossene Bilder? Aber dafuer waeren ja teuere mechanische Sensoren noetig, die koennten ja einige Eurocent kosten, um Gottes Willen, kann man doch nicht machen!
                      *grummel*

                      Jaja, die Hersteller ;-) ... sparen immer am falschen Ende ...

                      Es ist weder der "Orientation"-Tag in exif['Orientation'] noch exif['THUMBNAILS']['Orientation']. Zu vermuten ist, daß dieser Tag nur dann korrekt gesetzt wird, wenn ich das Bild mit Bordmitteln der Kamera ("in der Kamera") drehe und nicht mit einer x-beliebigen Bildbearbeitungssoftware.

                      Ich glaube Photoshop kann sowas nach Wunsch setzen.

                      Das mag sein. Aber da würde ich dann für meinen Fall doch noch eher die "manuelle" Variante bevorzugen.

                      Ja, sowas aehnliches hatte ich auch mal zur Aehnlichkeitsberechnung getestet. Nur halt ohne Raster, sondern mit einigen Tricks der Bildbearbeitung, die ImageMagick so draufhat.

                      Das mit meinem Raster funktioniert leider nicht so wie ich mir das erhofft hatte, bzw. es gibt eben genau das, schon vorausgeahnte, Problem mit den Farbwerten wegen der Kompimierung ... ABER ...

                      http://selfhtml.christoph-schnauss.de/artikel/javascript/similarity/picture-search.html. Vielleicht kannst Du davon etwas gebrauchen.

                      ... schaut gut aus. Das ist, denke ich auch noch nach kurzem Test, genau das was ich suche. Zumindest vom Prinzip her. Allerdings sind die Grafiken auf der Beispielseite sehr klein (im Vergleich zu Bildern aus Digitalkameras), und soweit ich das auf die Schnelle beurteilen kann, liegen diese auch nur in einer Variante (Thumbnail=Orginal) vor. Auf jeden Fall vielen Dank für den Link.

                      Grüsse
                      Frankie

                      1. Hi,

                        So wie sich die deutsche Politik derzeit darstellt, dürfte das doch kein Problem sein ;-)

                        Warum die zeitliche Einschraenkung? >;->

                        Zur Zeit ist es aber besonders schlimm, oder?

                        Ach was, alles schonmal dagewesen.
                        Kollege war neulich bei Volker Pispers, der hat einiges aus seinen Programmen der letzten 20 Jahre gebracht weil -- nun, weil's eben immer noch/schon wieder passte ;-)
                        Aber hast schon recht, was die letzten Wochens o passiert ist, kann man nur noch als Realsatire bezeichnen. Was habe ich mich doch vor Lachen auf dem Boden gerollt, als man Merkel vorwarf im Wahlkampf nicht genug gelogen zu haben!
                        Nej nej, watt hepp wi doch lacht! ;-)

                        Ich habe zwar nicht in die Specs geschaut, aber ich bin mir doch recht sicher, das es dieser Tag ist. Vielleicht findest Du aber trotzdem noch etwas a la "Rotation" o.ae.

                        nope, ich lasse wirklich alle exif-Tags (bzw. solche, die dafür gehalten werden) auslesen, da ist viel dabei, aber nichts was in diese Richtung geht (außer "Orientation" natürlich).

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

                        http://selfhtml.christoph-schnauss.de/artikel/javascript/similarity/picture-search.html. Vielleicht kannst Du davon etwas gebrauchen.

                        ... schaut gut aus. Das ist, denke ich auch noch nach kurzem Test, genau das was ich suche. Zumindest vom Prinzip her. Allerdings sind die Grafiken auf der Beispielseite sehr klein (im Vergleich zu Bildern aus Digitalkameras), und soweit ich das auf die Schnelle beurteilen kann, liegen diese auch nur in einer Variante (Thumbnail=Orginal) vor.

                        Das spielt keine Rolle, das Prinzip bliebe gleich.
                        Im Grunde genommen hast Du nur den Schritt mehr aus dem grossem Bild ein Thumbnail zu machen, das Du dann mit der von mir beschriebenen Methode vergleichen kannst. Aber ob es _viel_ schneller ist als die Brute-Force-Methode -- das erzeugte Thumbnail einfach so lange zu drehen bis es halbwegs auf das EXIF-Thumbnail passt[1] -- bezweifele ich zwar, es ist aber durchaus etwas weniger Rechen- und Speicheraufwand beim Vergleich zu leisten.
                        Oder? Noe, das ist sogar erheblich weniger Aufwand! Immerhin musst Du ja nur eine kleinen Hash vergleichen, der so klein ist, das Du es problemlos numerisch loesen kannst (Bei dem Minimum von 8 Punkten wahrscheinlich sogar im Kopf ;-) , also ohne jegliche Bildbearbeitung. Wenn mindestens drei der vier Eckpunkte unterschiedlich sind reichen sogar die. Dann aber natuerlich nur fuer eine Genauigkeit von 90 Grad.

                        so short

                        Christoph Zurnieden

                        [1] es ist natuerlich nicht gradweise zu drehen, sondern etwas geschickter. Erst halbrum, dann eine Viertelkreis weiter, dann einen Halbkreis zurueck. Damit hast Du dann schonmal die Drehrichtung und die ungefaehre Position. Nach weiteren maximal sieben Versuchen, also maximal 10 insgesamt hast Du die gradgenaue Position.

                        1. Hallo Christoph,

                          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.

                          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.

                          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.

                          ... schaut gut aus. Das ist, denke ich auch noch nach kurzem Test, genau das was ich suche. Zumindest vom Prinzip her. Allerdings sind die Grafiken auf der Beispielseite sehr klein (im Vergleich zu Bildern aus Digitalkameras), und soweit ich das auf die Schnelle beurteilen kann, liegen diese auch nur in einer Variante (Thumbnail=Orginal) vor.

                          Das spielt keine Rolle, das Prinzip bliebe gleich.

                          Das Prinzip schon, und das habe ich ja auch schon erkannt. 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.

                          [...] 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) ;-)

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

                          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), 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.

                          Grüsse
                          Frankie

                          1. 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

                            1. Hallo Christoph,

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

                              Ja, auch viele die nicht in den Specs stehen. Vielleicht kann exif_read_data() auch nur die Namen der Offsets nicht ermitteln, bzw. kennt exif_read_data() diese Tags einfach nicht. Letzeres ist wohl anzunehmen, da exif_read_data() "UndefinedTag" meldet, manche Tags aber sehr wohl Daten enthalten, die man bei etwas Phantasie sogar selbst interpretieren könnte ;-).

                              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?

                              Zuerst zum "Orientation"-Tag: Wenn ich
                              http://www.exif.org/Exif2-2.PDF (Seite 142, Explication Table 3)
                              richtig verstanden habe, wird dieser bei Rotation explixit auf 1 gesetzt. Daher scheidet er als Kriterium zur Dreh-Erkennung wohl aus.

                              Also ich kann Bilder in der Vorschau meiner Kamera drehen. Soweit, so gut. Aber das gedrehte Bild wird nicht als gedreht gespeichert. Die Gebrauchsanleitung der Kamera meinst Du? Nein, da steht nichts dazu, enthält lediglich informationen zur Bedienung, nicht aber zur rechnergesteuerten Auswertung.

                              Nein, Komprimierungsraten haben damit nichts zu tun, das liegt an der unterschiedlichen Implementation. JPEGs haben auch keine Farbpalette, was meintest Du damit genau?

                              In etwa so:

                              imagecreatefromjpeg()
                              imagetruecolortopalette()
                              http://de.php.net/manual/de/function.imagepalettecopy.php bzw. so ähnlich wie imagepalettecopy_exact() aus den "User Contributed Notes".
                              ...

                              Die Komprimierungsrate hat in sofern damit zu tun, daß beim Erstellen über imagejpeg ( int im [, string filename [, int quality]] ), bei identischem Orginal, je nach quality, den Pixeln mit gleichen Koordinaten verschiedene Farbwerte zugewiesen werden, was ja auch zu erwarten ist. Dies hat mit Sicherheit auch Auswirkung auf die Farbpalette.

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

                              Warum habe ich das nur nicht schon früher erkannt?

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

                              Das ist wohl wahr ;-)

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

                              Ja, aber die Verluste müsste doch bei ähnlichen Bildern ähnlich bzw. nachvollziebar sein, sofern die Komprimierungsraten gleich sind, oder?

                              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?

                              Den Code werde ich demnächst mal online stellen und zum Test freigeben. Zuvor möchte ich ihn aber noch ein bisschen säubern ;-)

                              Grüsse
                              Frankie

                              1. Hi,

                                Ja, auch viele die nicht in den Specs stehen. Vielleicht kann exif_read_data() auch nur die Namen der Offsets nicht ermitteln, bzw. kennt exif_read_data() diese Tags einfach nicht. Letzeres ist wohl anzunehmen, da exif_read_data() "UndefinedTag" meldet, manche Tags aber sehr wohl Daten enthalten, die man bei etwas Phantasie sogar selbst interpretieren könnte ;-).

                                Ah, dann ist also nur der EXIF-Reader kaput bzw nicht uptodate.

                                Aber, um ehrlich zu sein, ich faende es jetzt nicht _so_ unwahrscheinlich, das sich die Hersteller ihr individuelles eigenes Sueppchen kochen *sigh* :-}

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

                                Zuerst zum "Orientation"-Tag: Wenn ich
                                http://www.exif.org/Exif2-2.PDF (Seite 142, Explication Table 3)
                                richtig verstanden habe, wird dieser bei Rotation explixit auf 1 gesetzt. Daher scheidet er als Kriterium zur Dreh-Erkennung wohl aus.

                                Der "Orientation"-Tag wird ebenda auf Seite 18 behandelt und kann Spiegelung und Drehung beschreiben, wenn auch nur 90 Grad weise, da nur die Positionen von Zeile respektive Spalte 0 beschrieben wird. Aufgrund des Defaults ist normalerweise das Pixel {0,0} oben links.

                                Also ich kann Bilder in der Vorschau meiner Kamera drehen. Soweit, so gut. Aber das gedrehte Bild wird nicht als gedreht gespeichert. Die Gebrauchsanleitung der Kamera meinst Du? Nein, da steht nichts dazu, enthält lediglich informationen zur Bedienung, nicht aber zur rechnergesteuerten Auswertung.

                                Ich glaube die Speicherung im Kameraspeicher eines mittels einer auf der Kamera befindlichen Software bearbeiteten Bildes ohne weitere externe Hilfsmittel ist durchaus der Bedienung eben jener Kamera zuzurechnen, meinst Du nicht? ;-)

                                imagecreatefromjpeg()
                                imagetruecolortopalette()
                                http://de.php.net/manual/de/function.imagepalettecopy.php bzw. so ähnlich wie imagepalettecopy_exact() aus den "User Contributed Notes".
                                ...

                                Ah,nein, nicht ganz so. Du hast einfach zuviele Farben in der Pallete und die Groesse des Hashes ist auch viel zu hoch. Je weniger Farben die Pallete dabei hat (na, nicht ganz. Ich denke mal so zwei Hand voll sollten es schon mindestens sein ;-) und je besser die im Spektrum verteilt sind, desto besser das spaetere Ergebniss. Die Groesse des Hashes betraegt dabei mindestens 4 Pixel (2x2), in deinem Fall waeren es aber besser 16 (4x4).

                                In Deinem Fall kaeme dann z.B. raus, das zwei benachbarte Ecken blau sind (Himmel) und die beiden gegenueber gruen (oder rot, habe das jetzt nicht ausprobiert). Damit und der Ratio bekaemst Du dann sofort die Drehrichtung raus. Problem: das ist dann nicht sauber von einer Spiegelung unterscheidbar, dafuer braeuchtest Du pro Seite noch einen aussermittigen Punkte mehr. Deshalb auch meine Empfehlung mit 16 Pixeln.
                                Fuer den Winkel der Rotation waere in diesem Beispiel jedoch mehr Aufwand noetig falls die Genauigkeit 90 Grad ueberschreiten soll.

                                Die Komprimierungsrate hat in sofern damit zu tun, daß beim Erstellen über imagejpeg ( int im [, string filename [, int quality]] ), bei identischem Orginal, je nach quality, den Pixeln mit gleichen Koordinaten verschiedene Farbwerte zugewiesen werden, was ja auch zu erwarten ist. Dies hat mit Sicherheit auch Auswirkung auf die Farbpalette.

                                Ja, eben, deshalb sollst Du das auch anders machen.

                                Auf die Feststellung "Datt funktioniert so nich!" sollte bei einem gutem Ingenieur normalerweise die Frage "Wie kann man das dann anders machen?" auf dem Fusse folgen, oder? ;-)

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

                                Warum habe ich das nur nicht schon früher erkannt?

                                Vielleicht hast Du ja das Muster nicht erkannt? ;-)

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

                                Ja, aber die Verluste müsste doch bei ähnlichen Bildern ähnlich bzw. nachvollziebar sein, sofern die Komprimierungsraten gleich sind, oder?

                                Ja, aber eben nur _aehnlich_. Die Methode der Kompression ist dadurch, das sie aus Prinzip mit Verlust arbeitet im Grunde genommen recht beliebig, es muss nur moeglich sein, aus dem Endergebniss etwas rauszuziehen, die Datenstruktur JIF muss valide sein, das ist schon alles.
                                Es ist auch bei verlustlosen Kompressionsalgorithmen nicht unaehnlich, da hast Du trotz valider Datenstruktur verschiedene Dateigroessen der komprimierten Daten. Die verschiedenen ZIP-Programme packen zwar unterschiedlich gut, aber jedes ZIP-Programm kann normalerweise das von anderen Programmen gepackte wieder auspacken.
                                So ist das auch bei JPEG.

                                Den Code werde ich demnächst mal online stellen und zum Test freigeben. Zuvor möchte ich ihn aber noch ein bisschen säubern ;-)

                                Ach komm:"Release early and often!", denn vielleicht findet sich ja ein Dummer, der fuer Dich saubermacht? ;-)

                                so short

                                Christoph Zurnieden

                                1. Hallo Christoph,

                                  Ah, dann ist also nur der EXIF-Reader kaput bzw nicht uptodate.

                                  mag sein, ist halt der aus PHP 4.3. Ich werde mich hüten, da was eigenes dazu zu basteln.

                                  Aber, um ehrlich zu sein, ich faende es jetzt nicht _so_ unwahrscheinlich, das sich die Hersteller ihr individuelles eigenes Sueppchen kochen *sigh* :-}

                                  Ja, das ist wohl so.

                                  Der "Orientation"-Tag wird ebenda auf Seite 18 behandelt und kann Spiegelung und Drehung beschreiben, wenn auch nur 90 Grad weise, da nur die Positionen von Zeile respektive Spalte 0 beschrieben wird. Aufgrund des Defaults ist normalerweise das Pixel {0,0} oben links.

                                  Du sagst es. Er _kann_ Spiegelung und Drehung beschreiben. Anscheinend aber nicht bei den von mir getesteten Beispielen.

                                  Ich glaube die Speicherung im Kameraspeicher eines mittels einer auf der Kamera befindlichen Software bearbeiteten Bildes ohne weitere externe Hilfsmittel ist durchaus der Bedienung eben jener Kamera zuzurechnen, meinst Du nicht? ;-)

                                  Ja, Du, ich und einige andere auch würden uns das sicherlich wünschen, aber ob das die Mehrheit der (pot.) Käufer wirklich interessiert?

                                  Ah,nein, nicht ganz so. Du hast einfach zuviele Farben in der Pallete und die Groesse des Hashes ist auch viel zu hoch. Je weniger Farben die Pallete dabei hat (na, nicht ganz. Ich denke mal so zwei Hand voll sollten es schon mindestens sein ;-) und je besser die im Spektrum verteilt sind, desto besser das spaetere Ergebniss. Die Groesse des Hashes betraegt dabei mindestens 4 Pixel (2x2), in deinem Fall waeren es aber besser 16 (4x4).

                                  Christoph, ich habe meine gedachte Vorgehensweise doch auch nur ganz grob skizziert, weil Du den Einwand brachtest, jpegs könnten keine Paletten zugewiesen werden.

                                  In Deinem Fall kaeme dann z.B. raus, das zwei benachbarte Ecken blau sind (Himmel) und die beiden gegenueber gruen (oder rot, habe das jetzt nicht ausprobiert). Damit und der Ratio bekaemst Du dann sofort die Drehrichtung raus. Problem: das ist dann nicht sauber von einer Spiegelung unterscheidbar, dafuer braeuchtest Du pro Seite noch einen aussermittigen Punkte mehr. Deshalb auch meine Empfehlung mit 16 Pixeln.

                                  Und genau an diesem Problem doktore ich doch die ganze Zeit rum ;-) Ich habe mit den Eckpunkten angefangen, den Ausschnitt (der untersucht werden soll) vergrössert, weitere Ausschnitte für den Vergleich hinzugenommen ...

                                  Auf die Feststellung "Datt funktioniert so nich!" sollte bei einem gutem Ingenieur normalerweise die Frage "Wie kann man das dann anders machen?" auf dem Fusse folgen, oder? ;-)

                                  LOL, diese Frage stelle ich mir doch schon die ganze Zeit ;-)

                                  Vielleicht hast Du ja das Muster nicht erkannt? ;-)

                                  Bin kurzsichtig und leide an grauem Star!

                                  Ach komm:"Release early and often!", denn vielleicht findet sich ja ein Dummer, der fuer Dich saubermacht? ;-)

                                  Der wahre Grund ist doch der, daß ich mich nicht unnötig blamieren will ;-)

                                  Grüsse
                                  Frankie

                                  1. Hi,

                                    Der "Orientation"-Tag wird ebenda auf Seite 18 behandelt und kann Spiegelung und Drehung beschreiben, wenn auch nur 90 Grad weise, da nur die Positionen von Zeile respektive Spalte 0 beschrieben wird. Aufgrund des Defaults ist normalerweise das Pixel {0,0} oben links.

                                    Du sagst es. Er _kann_ Spiegelung und Drehung beschreiben. Anscheinend aber nicht bei den von mir getesteten Beispielen.

                                    Wird der jetzt gar nicht genutzt oder hast Du nur Beispiele ohne derartige Aenderung bekommen? Kannst Du einen der Kollegen evt ueberreden mal etwas derartiges zu versuchen?

                                    Aber ich bin bei der Suche nach mehr Informationen auch auf allerhand Unmut gestossen. Die Firmen scheinen das Zeug wohl nicht gerne zu nutzen, alles wirklich Interessante kommt in die MakerNotes.

                                    Ueber den Aerger mit Nikon und dem Zugriff auf die Rohdaten habe ich Dir ja schon berichtet. Das ist ungefaehr so, als ob man bei einer analogen Kamera nur die Abzuege haben darf und die Negative automatisch vernichtet werden. Aehnlich sieht es auch mit anderen Dingern aus. Und das Schoenste ist ja immer, das die Hersteller keinen Grund fuer ihr Verhalten nennen wollen.

                                    Jetzt insistieren verschiedene Computerhardwarehesteller dahin, das der Linuxkernel eine konsistente ABI bekommt, damit die ihre binaeren Treiber besser anbauen koennen.
                                    Wofuer eigentlich binaere Treiber? Welche Schweinerei wird da versucht zu verbergen?

                                    Ja, Du, ich und einige andere auch würden uns das sicherlich wünschen, aber ob das die Mehrheit der (pot.) Käufer wirklich interessiert?

                                    Ja, das ist ein weiteres Problem.
                                    Solange sich keiner beschwert und die Leute kaufen wie bekloppt wird sich da auch nie etwas aendern.

                                    Christoph, ich habe meine gedachte Vorgehensweise doch auch nur ganz grob skizziert, weil Du den Einwand brachtest, jpegs könnten keine Paletten zugewiesen werden.

                                    Ja, was gibst Du mir auch unvorsichtigerweise den kleinen Finger? ;-)

                                    Aber JPEGs koennen immer noch keine Paletten zugewiesen werden, das ist im JIF-Standard nunmal nicht drin. Deshalb ja auch mein Umweg ueber ein Format, das Palleten unterstuetzt wie z.B. GIF oder PNG.
                                    Habe ich das in meinem Machwerk wirklich so schlecht erklaert?

                                    Und genau an diesem Problem doktore ich doch die ganze Zeit rum ;-) Ich habe mit den Eckpunkten angefangen, den Ausschnitt (der untersucht werden soll) vergrössert, weitere Ausschnitte für den Vergleich hinzugenommen ...

                                    Aha, das hatte ich befuerchtet. Statt die Informationsmenge zu minimieren erhoehst Du sie. Ich versuche mich nochmal:

                                    Du hast zwei Thumbnails. Eines davon ist das eingebette Thumbnail aus der Kameradatei "thumbcam", das andere ist ein separat vom Originalbild hergestelltes Thumbnail "thumborig". Beide haben die gleiche Dimension (120x160px) und das gleiche Datenformat (JIF), sind jedoch mit unterschiedlichen Methoden hergestellt worden und daher auf Byteebene nicht gleich. Farbtiefe habe ich jetzt nicht kontrolliert, duerfte aber hoch sein.
                                    Beide Thumbnails werden jetzt in ein Format umgewandelt, das eine Palettenzuweisung ermoeglicht, hier: PNG.
                                        thumborig.jpeg -> thumborig.png
                                        thumbcam.jpeg  -> thumbcam.png
                                    Nun wird eine Palette "palette.png" erstellt, die nur eine handvoll Farben enthaelt, hier sind es mal 9 Farben, quer ueber den 256-Farben-RGB-Raum verteilt sind (0x000000, 0x0000FF, 0x00FF00 ... 0xFFFFFF). Diese Palette wird auf beide Thumbnails angewandt.
                                        thumborig.png x palette.png -> thumborig-9c.png
                                        thumbcam.png  x palette.png -> thumbcam-9c.png
                                    Beide Thumbnails werden nun in der Groesse reduziert, hier auf 16x16 Pixel. Das dies quadratisch ist und die Originale rechteckig kann evt zu Aerger fuehren, das waere dann nachzupruefen. Auch ist die Reihenfolge von Verkleinern und Umwandeln evt auszutauschen.
                                    Ein Graphikspezialist braeuchte da bestimmt nicht ausprobieren, aber wir sind nunmal keine ;-)
                                    Jetzt hast Du 16x16px kleine Microbildchen, die Du am besten gar nicht mehr bildbearbeitend anfasst, sondern die Farbwerte in eine Matrix packst und damit dann numerisch weiterarbeitest. Da bewegen wir uns dann wenigstens wieder auf bekanntem Boden ;-)

                                    Vielleicht hast Du ja das Muster nicht erkannt? ;-)

                                    Bin kurzsichtig und leide an grauem Star!

                                    Immer diese billigen Entschuldigungen!

                                    Ach komm:"Release early and often!", denn vielleicht findet sich ja ein Dummer, der fuer Dich saubermacht? ;-)

                                    Der wahre Grund ist doch der, daß ich mich nicht unnötig blamieren will ;-)

                                    Bitte definiere "unnoetig" >;->

                                    so short

                                    Christoph Zurnieden

                                    1. Hallo Christoph,

                                      bevor dieser Thread archiviert wird, möchte ich noch kurz den aktuellen Stand meiner Bemühungen hinsichtlich Drehrichtungserkennung/Spiegelungserkennung kundtun.

                                      Es scheint so, daß ich es mir endlich gelungen ist, eine ziemlich einfache, aber trotzdem recht effektive Methode zur Erkennung ähnlicher Bilder zu finden. Ich verwende dabei weder Erweiterungen von ImageMagic noch andere Funktions-Bibliotheken, sondern nur ganz rudimentäre PHP-GDLib-Funktionen.

                                      Natürlich habe ich mein Skript noch nicht ausreichend testen können - und ich bin mir durchaus bewußt daß es auch "schwierige" Bilder gibt, bei denen mein Skript höchstwahrscheinlich im derzeitigen Entwicklungsstand versagen wird - aber die ersten Tests erscheinen mir doch sehr erfolgversprechend zu sein. Zumindest für meine Zwecke.

                                      Sobald ich den Code etwas gesäubert und auf's Wesentliche reduziert habe, werde ich eine Testseite (unter der, in einem der Vorpostings schon genannten, URL) incl. Code online stellen.

                                      Bitte definiere "unnoetig" >;->

                                      Wenn ich hier schon mit meiner Unwissenheit zu den Themen EXIF/Image in PHP glänze, dann möchte ich meine Unwissenheit nicht noch zusätzlich durch ein unsauberes Skript unter Beweis stellen. Letzteres ist unnötig. Wie definiertst Du unnoetig?

                                      Grüsse
                                      Frankie

                                      1. Hi,

                                        bevor dieser Thread archiviert wird,

                                        Na, das kann noch etwas dauern ;-)

                                        Sobald ich den Code etwas gesäubert und auf's Wesentliche reduziert habe, werde ich eine Testseite (unter der, in einem der Vorpostings schon genannten, URL) incl. Code online stellen.

                                        Und so lange willst Du mich hier auf die Folter spannen?
                                        *grummel*

                                        Bitte definiere "unnoetig" >;->

                                        Wenn ich hier schon mit meiner Unwissenheit zu den Themen EXIF/Image in PHP glänze, dann möchte ich meine Unwissenheit nicht noch zusätzlich durch ein unsauberes Skript unter Beweis stellen. Letzteres ist unnötig. Wie definiertst Du unnoetig?

                                        Etwas Delegierbares nicht zu delegieren.

                                        so short

                                        Christoph Zurnieden

                                        1. Hallo Christoph,

                                          Und so lange willst Du mich hier auf die Folter spannen?
                                          *grummel*

                                          Oh, das tut mir leid. Foltern wollte ich dich wirklich nicht ;-) Ok, ich hätte es auch anders formulieren können: Nochmal eine Nacht drüber schlafen will. Warum? Weil mir mein Code als fast _zu_ einfach erscheint. Aber vielleicht liegt ja auch gerade in der Kürze/Einfachheit die Würze.

                                          [...] Wie definiertst Du unnoetig?

                                          Etwas Delegierbares nicht zu delegieren.

                                          Wenn Du damit darauf anspielst, daß ich es versäumt habe, meine Probleme bei der Lösungsfindung zu delegieren, dann kann ich dir nur sagen, daß ich mich, zumindest was des Skripten angeht, fast nur mit unnoetigen Dingen auseinandersetze. Und das Unverständliche dabei ist, daß es trotzdem Spaß macht ;-)

                                          Grüsse
                                          Frankie

                                          1. Hi,

                                            Ok, ich hätte es auch anders formulieren können: Nochmal eine Nacht drüber schlafen will. Warum? Weil mir mein Code als fast _zu_ einfach erscheint. Aber vielleicht liegt ja auch gerade in der Kürze/Einfachheit die Würze.

                                            Keine Ahnung, zeig doch mal!

                                            [...] Wie definiertst Du unnoetig?

                                            Etwas Delegierbares nicht zu delegieren.

                                            Wenn Du damit darauf anspielst, daß ich es versäumt habe, meine Probleme bei der Lösungsfindung zu delegieren,

                                            Nein, noch nicht einmal so weit, Du hast es schon versaeumt den Status "Delegierbar" zu pruefen.

                                            Aber das wollte ich eigentlich gar nicht sagen, sonder Dich um eine Direktlink bitten, damit ich armer Modemnutzer nicht lange mit Suchen aufgehalten werde. Faende ich wirklich nett.

                                            so short

                                            Christoph Zurnieden

  5. Hallo Forum,

    erstmal vielen Dank für eure zahlreichen Antworten.

    Habe das Problem gefunden und beseitigt. Das Problem war (und ist), daß die PHP-Funktion exif_thumbnail() bei meinen Fotos folgende Warnung ausgibt:

    Warning: exif_thumbnail(PICT0017.JPG): illegal IFD offset in [...] exif_data.php on line 328

    In meinem Skript hatte ich wegen der Warnung den Programmzweig zum Auslesen der Thumbnails nicht weiter verfolgt. Seit ich diese Warnung ignoriere klappt es auch mit den engebetteten Thumbnails.

    Es ist mir schon klar was mir die Warnung sagen will, was mich aber noch brennend interessieren würde wäre, an welchen Kameraeinstellungen es liegen könnte, daß diese Warnung erzeugt wird. Im Handbuch steht dazu leider nix. Ist ja schließlich auch mehr ein Problem im Zusammenhang mit PHP.

    Grüsse
    Frankie