schneider: binärdaten bild

Hallo, ich habe hier einen String, der ein Bild in Binärdaten enthält (Ausschnitt):

"AD75659A66791FF00AC90FF00620FCBE37D3681E3189C8F40C667D4F413261FB8CDCFEA89F74CE18FD87EFCC5FED4FA6CB0ECD838AF8A3FF0C751D2589411B5DB48969ADAAF2D515B7CE56A2BF28776D75E2D53653C80CD0B3FD8645BA071B53399FC37D091C5082330F563897D4F6D76A356E1889CBD6AA9AD25138BAAF2EDE62A117AF4CFAD803AB633E1DBF18EA3A4F24B777AC47E17F8E0B553AA71FAEA2251452DB35929537BB6FF00EBACA141AF07BBA671B"

mime-typ ist "image/jpeg"

Wenn ich jetzt das Bild via fopen, fwrite, fclose als "testbild.jpeg" abspeichere, enthält das "Bild" immer noch die Binärdaten und wird nicht als Bilddatei abgespeichert. Ich muss wahrscheinlich noch irgendwie einen Header angeben. Aber wo und wie mache ich das?

Gruss
Schneider

  1. Hi,

    Hallo, ich habe hier einen String, der ein Bild in Binärdaten enthält (Ausschnitt):

    "AD75659A66791FF00AC90FF00620FCBE37D3681E3189C8F40C667D4F413261FB8CDCFEA89F74CE18FD87EFCC5FED4FA6CB0ECD838AF8A3FF0C751D2589411B5DB48969ADAAF2D515B7CE56A2BF28776D75E2D53653C80CD0B3FD8645BA071B53399FC37D091C5082330F563897D4F6D76A356E1889CBD6AA9AD25138BAAF2EDE62A117AF4CFAD803AB633E1DBF18EA3A4F24B777AC47E17F8E0B553AA71FAEA2251452DB35929537BB6FF00EBACA141AF07BBA671B"

    Wenn ich jetzt das Bild via fopen, fwrite, fclose als "testbild.jpeg" abspeichere, enthält das "Bild" immer noch die Binärdaten und wird nicht als Bilddatei abgespeichert.

    Was soll denn sonst drin stehen, statt diesen Binärdaten?

    Ich muss wahrscheinlich noch irgendwie einen Header angeben. Aber wo und wie mache ich das?

    Gar nicht.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hi

      Was soll denn sonst drin stehen, statt diesen Binärdaten?

      ok, habe mich falsch ausgedrückt. Wenn ich die Datei mit einem Programm, hier Irfan View öffne, kommt die Meldung:

      can't read fileheader!
      Unknown file format or file not found...

      1. Hi,

        ok, habe mich falsch ausgedrückt. Wenn ich die Datei mit einem Programm, hier Irfan View öffne, kommt die Meldung:

        can't read fileheader!
        Unknown file format or file not found...

        Dann bilden die Daten, die du vorliegen hast, wohl kein korrektes JPEG-Bild.

        Wo kommen die denn her?

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. hi,

          »»Dann bilden die Daten, die du vorliegen hast, wohl kein korrektes JPEG-Bild.

          die Daten kommen aus einem XML-File und sollten eigentlich laut Doku korrekt sein. Ich parse das XML-File, habe dann die Daten als String vorliegen und speichere sie dann ab

            
          $file = "testbild.jpg";  
          $ft = fopen($file, "w+");  
          fwrite($ft, $binaerdaten);  
          fclose($ft);  
          
          
          1. Du speicherst damit einen String mit lauter Buchstaben ab. Was eigentlich drin sein sollte, wären die einzelnen Bytes, die dieser String repräsentiert.
            Also zum Beispiel ein Byte mit dem Wert 160, statt "A0".
            -> Konvertieren, da gibts sicher Routinen.

            1. hi,

              ok, danke schonmal für die Info. So ähnlich dachte ich mir das schon. Aber ich finde überhaupt nichts, wie ich das umwandeln kann... oder nach was ich überhaupt suchen muss.

              Diese von mir geposteten Daten sind ja im Prinzip keine richtigen Binärdaten, ich brauche also die numerische Entsprechung?

              1. hmmm,

                wenn ich ein anderes, nicht selbst erstelltes jpeg im Lister öffne, kommt sowas hier:
                ~%©^cÏk±ÿ $«ÅJ¡.c¡.cÏk

                ich erhalte sowas aus dem XML:
                AD75659A66791FF00AC90FF00620FCBE37D3681E3189C8F40C667D4F413261FB8CDCFEA89F74CE18FD87EFCC5FE

                ich muss das also irgendwie konvertieren... aber wie? mit was?

                1. zumindest sind diese Daten definitiv eine jpeg-datei:

                  http://de.wikipedia.org/wiki/JPEG_File_Interchange_Format

                  FFD8             => start of image
                  FF E0 00 10 4A 46 49 46 00 01 => JIFF-Tag

                  aber warum wird das nicht korrekt angezeigt?

                  1. Lieber schneider,

                    zwei Dinge:

                    1.) Du willst Binärdaten in eine Datei schreiben.

                    2.) Du hast einen String, in dem mittels Ziffern und Buchstaben Binärdaten dargestellt werden.

                    FFD8             => start of image
                    FF E0 00 10 4A 46 49 46 00 01 => JIFF-Tag

                    aber warum wird das nicht korrekt angezeigt?

                    So, und nun kommt drittens:

                    3.) Binärdaten schreiben (jetzt bist Du dran!)

                    Liebe Grüße,

                    Felix Riesterer.

                    --
                    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                    1. lieber felix,

                      1.) Du willst Binärdaten in eine Datei schreiben.

                      2.) Du hast einen String, in dem mittels Ziffern und Buchstaben Binärdaten dargestellt werden.

                      richtig

                      So, und nun kommt drittens:

                      3.) Binärdaten schreiben (jetzt bist Du dran!)

                      meines Erachtens wie ich oben beschrieben habe einfach ins Dateisystem (mittels fopen etc) schreiben. Das File wird ja auch generiert, nur eben kommt ebenfalls oben beschriebene Fehlermeldung, dass mit dem Header was nicht stimmt.

                      Komm bitt, klär mich doch auf!

                      Na ja, vielleicht sind einfach die Daten korrupt.

                      1. Lieber schneider,

                        So, und nun kommt drittens:

                        3.) Binärdaten schreiben (jetzt bist Du dran!)

                        meines Erachtens wie ich oben beschrieben habe einfach ins Dateisystem (mittels fopen etc) schreiben.

                        nee, so "einfach" ist das nicht. Du willst ja keine String-Daten (Zeichenwerte) schreiben, sondern Binärdaten.

                        Komm bitt, klär mich doch auf!

                        Chris hat auch schon versucht, Dir Deinen Denkfehler offen zu legen.

                        Na ja, vielleicht sind einfach die Daten korrupt.

                        Nein, sind sie nicht. Nur nicht binär. Sie _sehen_ _so_ _aus_, sind es aber nicht.

                        Liebe Grüße,

                        Felix Riesterer.

                        --
                        ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
                        1. Heureka!

                          Danke für den Tip, chrisB. Ich habe die Daten von hex in bin konvertiert, und siehe da, es *funzt*!

                          Wieder was gelernt!

                          Danke Euch allen und schönen Abend

                          Schneider

                  2. Hi,

                    zumindest sind diese Daten definitiv eine jpeg-datei:

                    FFD8             => start of image
                    FF E0 00 10 4A 46 49 46 00 01 => JIFF-Tag

                    aber warum wird das nicht korrekt angezeigt?

                    Weil die Daten, so wie sie das stehen, definitiv Buchstaben sind.

                    Du willst aber Bytewerte haben, und nicht ihre *Darstellung* als Hexzahlen.

                    MfG ChrisB

                    --
                    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hallo,
    ich habe nochmal eine ganz grundsätzliche Frage:

    Dies hier sind also Binärdaten in hexadezimaler Darstellung:

    "AD75659A66791FF00AC90FF00620FCBE37D3681E3189C8F40C667D4F413261FB8CDCFEA89F74CE18FD87EFCC5FED4FA6CB0ECD838AF8A3FF0C751D2589411B5DB48969ADAAF2D515B7CE56A2BF28776D75E2D53653C80CD0B3FD8645BA071B53399FC37D091C5082330F563897D4F6D76A356E1889CBD6AA9AD25138BAAF2EDE62A117AF4CFAD803AB633E1DBF18EA3A4F24B777AC47E17F8E0B553AA71FAEA2251452DB35929537BB6FF00EBACA141AF07BBA671B"

    Für die Bilddatei brauchte ich die Binärdaten in Binärdarstellung.
    Das sieht nach der hex2bin Konvertierung in etwa so aus:
    ©^cÏk±ÿ $«ÅJ¡.c¡.cÏk

    Aber ich dachte immer, Binärdaten sind nur 0 und 1?

    So recht kapier ich das noch nicht
    Gruss
    Schneider

    1. ok, habs geschnallt.
      http://de.wikipedia.org/wiki/Bin%C3%A4rdatei

      :)