用PHP将二进制转换为PNG?

时间:2013-02-28 11:22:31

标签: php image feed

我从Feed收到一个文件,它是二进制格式。

此代码将在屏幕上显示图像

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

然而,我尝试了许多不同的方法来保存.png,例如imagepng(),但似乎没有任何工作

二进制Feed的开头很长,但开始是......

‰PNG  IHDR,,ö"€IDATxÚì½w”×uîɲ¯,K²_²×{Ë^~ÿ½û)‹T°¨kI¤ˆ<9çäLd$E*X™ T@™ÈÌ`òô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+'°´áÿéòÀÊ|Л

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

使用imagecreatefromstring()获取图片资源,然后您可以使用imagepng()保存它。

答案 1 :(得分: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;