art-d-sign
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 20.06.2008, 17:18   #1
TP-Senior
 
Benutzerbild von mat81
 
Registriert seit: Jun 2005
Ort: Köln
mat81 macht alles soweit korrekt
Exclamation

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
mat81 ist offline   Mit Zitat antworten


Alt 20.06.2008, 19:22   #2
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
ist korrekt. Hast Du auch img-Tags drumrum?
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 20.06.2008, 21:52   #3
TP-Moderator
 
Benutzerbild von maxi89
 
Registriert seit: Nov 2004
Ort: Wuppertal
maxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine User
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!
maxi89 ist offline   Mit Zitat antworten
Alt 20.06.2008, 23:48   #4
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Was hat das mit dem Header zu tun? Im HTML muss der img Tag trotzdem rein
<img src="bytestring.php" alt="bild" />
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 21.06.2008, 13:33   #5
TP-Senior
 
Benutzerbild von mat81
 
Registriert seit: Jun 2005
Ort: Köln
mat81 macht alles soweit korrekt
@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
mat81 ist offline   Mit Zitat antworten
Alt 21.06.2008, 14:01   #6
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
der Code ergibt weder mit gif noch mit jpg ein gültiges Bild
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 21.06.2008, 14:06   #7
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Sicher, dass der String i.O. ist?
Schau Dir dieses mal an: imagecreatefromstring
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 21.06.2008, 14:07   #8
TP-Moderator
 
Benutzerbild von maxi89
 
Registriert seit: Nov 2004
Ort: Wuppertal
maxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine User
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).
maxi89 ist offline   Mit Zitat antworten
Alt 21.06.2008, 14:13   #9
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Zitat:
Zitat von maxi89 Beitrag anzeigen
Aaah, webmichl war schneller...
WER?
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE || PS Kniffe
emCalculator 1.0



webcreate IT SOLUTIONS
www.webcreate-nrw.de
webcreate ist offline   Mit Zitat antworten
Alt 21.06.2008, 14:19   #10
TP-Moderator
 
Benutzerbild von maxi89
 
Registriert seit: Nov 2004
Ort: Wuppertal
maxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine User
@webCREATE: Ja, sorry, aber wenn ihr beide auch mit 'web' anfangt...
__________________
Chuck Norris darf während der Fahrt mit dem Busfahrer sprechen!
maxi89 ist offline   Mit Zitat antworten
Alt 21.06.2008, 15:53   #11
TP-Special Mod
 
Benutzerbild von steffenk
 
Registriert seit: Feb 2005
Ort: Haan / NRW
steffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine Usersteffenk lebt für das TP und seine User
wenn man nach Marks Ampel geht, müsste er eigentlich "1000dB" heissen
__________________

Typo3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
steffenk ist offline   Mit Zitat antworten
Alt 23.06.2008, 10:44   #12
TP-Senior
 
Benutzerbild von mat81
 
Registriert seit: Jun 2005
Ort: Köln
mat81 macht alles soweit korrekt
Wow, danke für die schnellen Antworten am Wochenende.

Nun hänge ich nur noch an dieser Geschichte:

Zitat:
Zitat von maxi89 Beitrag anzeigen
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).
mat81 ist offline   Mit Zitat antworten
Alt 23.06.2008, 14:49   #13
TP-Moderator
 
Benutzerbild von maxi89
 
Registriert seit: Nov 2004
Ort: Wuppertal
maxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine Usermaxi89 lebt für das TP und seine User
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!
maxi89 ist offline   Mit Zitat antworten
Alt 23.06.2008, 15:25   #14
TP-Senior
 
Benutzerbild von mat81
 
Registriert seit: Jun 2005
Ort: Köln
mat81 macht alles soweit korrekt
Lightbulb

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_datahexdec(substr($data$i2)));
    
    
# Hexadec-Zeichen bestehen immer aus 2 Zeichen
    
$i $i 2
}

# Dec --> Ascii
$ascii_data = array();

foreach (
$dec_data as $v)
    
array_push ($ascii_datachr($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
mat81 ist offline   Mit Zitat antworten
Alt 24.06.2008, 00:19   #15
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
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
Stuck Mojo ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
Bytestring to Image [PHP] Bytestring to Image
« Bug in __set() ? | bei echo Zeilenumbruch »

Stichworte
php

Aktive Benutzer in diesem Thema: