 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
20.06.2008, 17:18
|
#1
|
|
TP-Senior
Registriert seit: Jun 2005
Ort: Köln
|
Bytestring to Image
Hallo zusammen,
ich werd noch bekloppt. Es kann doch nicht so schwer sein, ein Bild, dass man als Bytestring bekommt, mit PHP ausgeben zu lassen.
Reicht es nicht, wenn ich den Header und danach den String ausgeben? Im Browser wird dann die URL zur PHP-Datei angezeigt. Jedoch behandelt der Browser diese Ausgabe als Bild.
Hier mal der Code
PHP-Code:
header('Content-Type: image/jpeg');
# Bytestrom
$data = '4749...';
echo $data;
__________________
The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
|
|
|
20.06.2008, 19:22
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
ist korrekt. Hast Du auch img-Tags drumrum?
|
|
|
20.06.2008, 21:52
|
#3
|
|
TP-Moderator
Registriert seit: Nov 2004
Ort: Wuppertal
|
Die img-Tags braucht er doch nicht, denn laut Header wird ja kein HTML sondern JPEG ausgegeben 
Probier mal mit print die Daten auszugeben, ansonsten könnte es sein, dass nichts Bildmäßiges beim Browser ankommt (Firefox?) und deswegen der Link zur Datei gezeigt wird.
__________________
Chuck Norris darf während der Fahrt mit dem Busfahrer sprechen!
|
|
|
20.06.2008, 23:48
|
#4
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Was hat das mit dem Header zu tun? Im HTML muss der img Tag trotzdem rein
<img src="bytestring.php" alt="bild" />
|
|
|
21.06.2008, 13:33
|
#5
|
|
TP-Senior
Registriert seit: Jun 2005
Ort: Köln
|
@Webcreate: Genauso hab ichs versucht. Im Grunde ist es ein GIF-Bild. Ich habs trotzdem auch mal mit jpeg als MIME probiert. Wenn ich GIF nutze, kommt eine Meldung, dass das Bild fehlerhaft sei. Ansonsten muss ich nochmal nen Bytecode eines anderen Bildes anfordern. Wenn ihr Lust habt, könnt ihr diesen Code ja mal testen.
PHP-Code:
47494638396100010001f00000ffffff0000002c00000000000100010002fe848fa9cbed0fa39cb4da8bb3debcfb0f86e24896e689a6eacab6ee0bc7f24cd7f68de7facef7fe0f0c0a87c4a2f1884c2a97cca6f3098d4aa7d4aaf58acd6ab7dcaef70b0e8bc7e4b2f98c4eabd7ecb6fb0d8fcbe7f4bafd8ecfebf7fcbeff0f182838485868788898a8b8c8d8e8f808192939495969798999a9b9c9d9e9f9091a2a3a4a5a6a7a8a9aaabacadaeafa0a1b2b3b4b5b6bdb19907beb1460d0bbabf4eb0b9c240c604c4c848c9c0cc4ccdcecf31c3d344dedbc007d9d03adbd7da3edfd7da2dbe02d3e4ef25bae709ede221c6efebeb29c3d4f9f629f208e9edfd18ddf037fff32b83b808e60c10b07873950b89042428403238698e8109f45fe0f188f55dc0830c2ba8f167341bc0761e4c392f10c8af498f25b408e12d8addc369303449b1aa3f5da177202c193b07e0aa429f4e535a30888deaca9d467c6a91b4ef264e094954aaa55250ea5b6152652a8feb2ae0a6b16ab44b13d89a18d09356959b053e746250bb7d9dbbc4fe3da4dd6922b4a927ef9020bccb6efe0a48917ef328698b063a57f0f37a518576d85b09add1eb5da96b2e15bfb88cadb2cb81de0cf167232feeaf972e3d1b33fc2b62c3babb5b5a965e3c6acfb28eade987f3b340b9961f1d0b54a6348de7a79e7c7ac9f4bcf7c9bb4eab49119d716ae5d605a98c1895f4765323453ebdf9f664fd5fdfa7aebe5db9f2f05d437c5f11efeebbf37e51a57f329e75f6600b6350d7f036267207e7d25d855817791d251630ba226216da1fc05a10617e6a5107f90dcd6a187c89977df2721ce76154327da97222e726523228cf8ece4205eedd4c81d8a316a025a373cba64a38f9704496350ca15c92425a6b138247dbc6dd89a904a46071a955526a99387c331d2a2643559a9538f531e62d287cc4d88108f353638c8555946c765556fb209489838b2b72340776ac847984636d954386ed61327a0aab9389d898806f25fa35e49caa73e90c249e99899d2a9c29f64eca9e840a775f968a0732ab699a78b76dac793787a5782aaa8dae1d48a443e212b17f5cd2a46ae5abc28e618be626126afbde251ddacb1610c5bc578959dc1ec140a860a46b45188f8ac19d6e24aaab2cb6edb4494de7e016eb8636d0a52a11f5498ee645dadd96eace3c60b4243f4a2d0cfbdaca2ab6fbdf0f6ebafbb008b30eac0f2ae6ab03afc26fc2e780c132cf0c3570e2a31a73f565c29c518c34ae8c6b0963bf03a201b2ca8c7269f8c72ca2aafcc72cb2ebf0c73cc32cf4c73cd36df8c73ce3aefcc73cf3eff0c74d0420f4d74d1461f8d74d24a2fcd74d34e3f0d75d4524f4d75d5565f8d75d65a6fcd75d75e7f0d76d8628f4d76d9669f8d76da6aafcd76db6ebf0d77dc72cf4d77dd76bf5100003b
__________________
The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
|
|
|
21.06.2008, 14:01
|
#6
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
der Code ergibt weder mit gif noch mit jpg ein gültiges Bild
|
|
|
21.06.2008, 14:06
|
#7
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Sicher, dass der String i.O. ist?
Schau Dir dieses mal an: imagecreatefromstring
|
|
|
21.06.2008, 14:07
|
#8
|
|
TP-Moderator
Registriert seit: Nov 2004
Ort: Wuppertal
|
Es gibt in PHP bzw. in der GDLibrary die Funktion imagecreatefromstring(), welche exakt das macht, was du brauchst.
Habe jetzt mit eigenen GIFs rumexperimentiert, aber bei mir wird immer "Unrecognized format" zurückgemeldet. Mal sehen, woran das liegt
EDIT: Ich glaube PHP will die Sachen als ASCII-Text sehen, um ein Bild draus zu machen. Die Browser scheinbar auch.
Aaah, webcreate war schneller... 
__________________
Chuck Norris darf während der Fahrt mit dem Busfahrer sprechen!
Geändert von maxi89 (21.06.2008 um 14:18 Uhr).
|
|
|
21.06.2008, 14:13
|
#9
|
|
TP-Urgestein
Registriert seit: Nov 2003
Ort: NRW
|
Zitat:
Zitat von maxi89
Aaah, webmichl war schneller... 
|
WER? 
|
|
|
21.06.2008, 14:19
|
#10
|
|
TP-Moderator
Registriert seit: Nov 2004
Ort: Wuppertal
|
__________________
Chuck Norris darf während der Fahrt mit dem Busfahrer sprechen!
|
|
|
21.06.2008, 15:53
|
#11
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
wenn man nach Marks Ampel geht, müsste er eigentlich "1000dB" heissen 
|
|
|
23.06.2008, 10:44
|
#12
|
|
TP-Senior
Registriert seit: Jun 2005
Ort: Köln
|
Wow, danke für die schnellen Antworten am Wochenende.
Nun hänge ich nur noch an dieser Geschichte:
Zitat:
Zitat von maxi89
EDIT: Ich glaube PHP will die Sachen als ASCII-Text sehen, um ein Bild draus zu machen. Die Browser scheinbar auch.
|
Laut php-Doku wandelt die Funktion
ord();
Strings entsprechend um. Dann erhalte ich aber die Meldung:
Empty string or invalid image
EDIT: Ich habe nun bin2hex probiert, klappt leider ebenso wenig.
__________________
The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
Geändert von mat81 (23.06.2008 um 12:51 Uhr).
|
|
|
23.06.2008, 14:49
|
#13
|
|
TP-Moderator
Registriert seit: Nov 2004
Ort: Wuppertal
|
Mit denen hatte ich es auch probiert, aber die können nur ein gewisses Maximum an Zeichen verarbeiten. Ich glaube, bei bin2hex lag der Wert bei etwa 20 oder 30 Zeichen - viel zu wenig also.
Da müsste man das vorher in einer Schleife in schöne kleine Häppchen aufteilen und dann nacheinander dadurchjagen.
__________________
Chuck Norris darf während der Fahrt mit dem Busfahrer sprechen!
|
|
|
23.06.2008, 15:25
|
#14
|
|
TP-Senior
Registriert seit: Jun 2005
Ort: Köln
|
Gelöst
Danke für eure Hilfe. Vom Code-Anbieter habe ich nun erfahren, dass der Code in Hexadezimalkodierung vorliegt.
Nun weiß ich auch woran ich bin.
PHP-Code:
$data = '4839...3b';
$dec_data = array();
# Hex --> Dec $i = 0; while ($i < (strlen($data))) { array_push ($dec_data, hexdec(substr($data, $i, 2))); # Hexadec-Zeichen bestehen immer aus 2 Zeichen $i = $i + 2; }
# Dec --> Ascii $ascii_data = array();
foreach ($dec_data as $v) array_push ($ascii_data, chr($v)); $final_data = implode($ascii_data);
$im = imagecreatefromstring($final_data);
if ($im !== false) { header('Content-Type: image/gif'); imagegif($im); }
__________________
The difference between theory and practice is
that in theory there is no
difference between theory and practice
but in practice there is
|
|
|
24.06.2008, 00:19
|
#15
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
nur der Vollständigkeit halber und um ggf. ein paar Zeilen Code zu sparen:
PHP-Code:
<?php
header('Content-Type: image/gif');
$string = '47494638396100010001f00000ffffff0000002c00000000000100010002fe848fa9cbed0fa39cb4da8bb3debcfb0f86e24896e689a6eacab6ee0bc7f24cd7f68de7facef7fe0f0c0a87c4a2f1884c2a97cca6f3098d4aa7d4aaf58acd6ab7dcaef70b0e8bc7e4b2f98c4eabd7ecb6fb0d8fcbe7f4bafd8ecfebf7fcbeff0f182838485868788898a8b8c8d8e8f808192939495969798999a9b9c9d9e9f9091a2a3a4a5a6a7a8a9aaabacadaeafa0a1b2b3b4b5b6bdb19907beb1460d0bbabf4eb0b9c240c604c4c848c9c0cc4ccdcecf31c3d344dedbc007d9d03adbd7da3edfd7da2dbe02d3e4ef25bae709ede221c6efebeb29c3d4f9f629f208e9edfd18ddf037fff32b83b808e60c10b07873950b89042428403238698e8109f45fe0f188f55dc0830c2ba8f167341bc0761e4c392f10c8af498f25b408e12d8addc369303449b1aa3f5da177202c193b07e0aa429f4e535a30888deaca9d467c6a91b4ef264e094954aaa55250ea5b6152652a8feb2ae0a6b16ab44b13d89a18d09356959b053e746250bb7d9dbbc4fe3da4dd6922b4a927ef9020bccb6efe0a48917ef328698b063a57f0f37a518576d85b09add1eb5da96b2e15bfb88cadb2cb81de0cf167232feeaf972e3d1b33fc2b62c3babb5b5a965e3c6acfb28eade987f3b340b9961f1d0b54a6348de7a79e7c7ac9f4bcf7c9bb4eab49119d716ae5d605a98c1895f4765323453ebdf9f664fd5fdfa7aebe5db9f2f05d437c5f11efeebbf37e51a57f329e75f6600b6350d7f036267207e7d25d855817791d251630ba226216da1fc05a10617e6a5107f90dcd6a187c89977df2721ce76154327da97222e726523228cf8ece4205eedd4c81d8a316a025a373cba64a38f9704496350ca15c92425a6b138247dbc6dd89a904a46071a955526a99387c331d2a2643559a9538f531e62d287cc4d88108f353638c8555946c765556fb209489838b2b72340776ac847984636d954386ed61327a0aab9389d898806f25fa35e49caa73e90c249e99899d2a9c29f64eca9e840a775f968a0732ab699a78b76dac793787a5782aaa8dae1d48a443e212b17f5cd2a46ae5abc28e618be626126afbde251ddacb1610c5bc578959dc1ec140a860a46b45188f8ac19d6e24aaab2cb6edb4494de7e016eb8636d0a52a11f5498ee645dadd96eace3c60b4243f4a2d0cfbdaca2ab6fbdf0f6ebafbb008b30eac0f2ae6ab03afc26fc2e780c132cf0c3570e2a31a73f565c29c518c34ae8c6b0963bf03a201b2ca8c7269f8c72ca2aafcc72cb2ebf0c73cc32cf4c73cd36df8c73ce3aefcc73cf3eff0c74d0420f4d74d1461f8d74d24a2fcd74d34e3f0d75d4524f4d75d5565f8d75d65a6fcd75d75e7f0d76d8628f4d76d9669f8d76da6aafcd76db6ebf0d77dc72cf4d77dd76bf5100003b';
echo pack('H*', $string);
die();
Gruß
Jan
|
|
|
|
Aktive Benutzer in diesem Thema: | | |