binärdaten bild
schneider
- php
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
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
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...
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
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);
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.
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?
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?
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?
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-Tagaber warum wird das nicht korrekt angezeigt?
So, und nun kommt drittens:
3.) Binärdaten schreiben (jetzt bist Du dran!)
Liebe Grüße,
Felix Riesterer.
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.
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.
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
Hi,
zumindest sind diese Daten definitiv eine jpeg-datei:
FFD8 => start of image
FF E0 00 10 4A 46 49 46 00 01 => JIFF-Tagaber 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
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
ok, habs geschnallt.
http://de.wikipedia.org/wiki/Bin%C3%A4rdatei
:)