2013-02-28 2 views
0

Я получаю файл из фида, он находится в двоичном формате.Преобразование двоичных файлов в PNG в PHP?

этот код будет отображать изображение на экране

header("Content-type: image/png"); 
print $image; 

Однако я пытался несколько различных способов сохранения .png, таких как imagepng(), но ничего, кажется, работает

старте из бинарного корма довольно долго, но старт ...

‰PNG IHDR,,ö"€IDATxÚì½w”×uîɲ¯,K²_²×{Ë^~ÿ½û)‹T°¨kI¤ˆ<9çäLd$E*X™ [email protected]™ÈÌ`òôL§ÊÕÕ©r>oŸsº{¢|%‚âëZß*zª{zºëWßÞ'ì3U¶ÊVÙ®ë6§òT¶ÊV°²U¶ „•­²U¶ „•­²U ¬l•­²U ¬l•­ae«l•­á»nÿ@U¶ÊVð¹Ù[ÂÊVðOŽYÙÍ÷ý ¸W ß¾*—Te«@ø{¨Þd+'°´áÿéòÀÊ|Л 

Любая помощь будет высоко ценится

+0

«Преобразование двоичных чисел в PNG» не имеет смысла. PNG является двоичным. Байты вы получаете не больше, чем PNG, вам просто нужно это сохранить. – leonbloy

ответ

0

Для получения ресурса изображения воспользуйтесь imagecreatefromstring(), затем его можно использовать, используя imagepng().

+0

imagepng (imagecreatefromstring ($ image), $ imagename. '.Png'); – PhillBooth

0

при условии, что браузер показывает изображение в первом примере, просто настроить его, чтобы стать загрузка файла:

<?php 
    header('Content-Description: File Transfer'); 
    header('Content-Type: image/png'); 
    header('Content-Disposition: attachment; filename=Image.png'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Pragma: public'); 
    header('Content-Length: ' . strlen($image)); 
    ob_clean(); // Just in case you have output buffers enabled 
    flush(); 
    print $image; 
+0

Отличный, это хороший бит кода, но моя единственная проблема в том, что мне нужно сохранить файл на диск, поскольку он будет запущен через работу cron. К сожалению, я должен был сказать. – PhillBooth

+0

Вы попробовали просто сохранить строку в файл под названием 'image.png'? (не знаю, действительно ли это будет работать) – hexblot

Смежные вопросы