【问题标题】:Coverting Hex to Image in PHP?在 PHP 中将十六进制转换为图像?
【发布时间】:2012-11-07 17:11:57
【问题描述】:

我正在开发通过PHP Webservice 与服务器对话的移动应用程序。这是我第一次使用 PHP。我设法将数据上传到数据库。现在我需要发送图像以将其存储在 ftp 服务器中。为此,我转换了image->hex 并从我的应用程序发送。

服务器端

我得到了十六进制代码,但不知道如何将其转换为图像并存储在 ftp 服务器中。我真的在这里挣扎。我用谷歌搜索了它,但找不到确切的。

非常感谢任何帮助。

【问题讨论】:

  • 您可以使用pack('H*', $hex) 将其转换回二进制数据。老实说,base64 可能是一条更好的路线。它比二进制大 33%,而十六进制大 100%。
  • @gigawatt 谢谢你的建议,我也会试试的。

标签: php mysql web-services


【解决方案1】:

将 HEX 字符串转换为二进制:

$binary = pack("H*", $hex);

pack("H*", ...) 等价于hex2bin,自 PHP 5.4 起可用。

将其写入磁盘:

file_put_contents("file.png", $binary);

【讨论】:

  • 感谢您的回答。我会试试这个+1
  • 它像魅力一样工作。但我试图将其存储在特定路径中,如file_put_contents("html\Report\Images\file.png", $binary);。我说的对吗
  • 如何将图像保存在该路径中?有什么想法吗?
【解决方案2】:

假设您在想要将此十六进制转换为真实图像的页面中收到一个十六进制字符串。请检查此代码 sn-p 是否对您有帮助。

<?php  

    $hexpic=".......................
    .....................";

    # convert the hex string to binary

    $data = pack("H" . strlen($hexpic), $hexpic);

    #write the binary string into an image file

    file_put_contents("sample.png", $data);
?>

【讨论】:

  • 不要只发布一段代码,请解释为什么这段代码可以解决所提出的问题。没有解释,这不是答案。
  • 感谢您的回答。我设法将图像存储在ftp中。现在我正在尝试将其存储在特定路径中,例如file_put_contents("html\Report\Images\file.png", $binary);。但它不工作。该怎么做?
  • 您使用的服务器操作系统是什么?
猜你喜欢
  • 2023-03-13
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 1970-01-01
  • 2015-06-25
  • 2013-03-10
  • 2012-07-29
  • 1970-01-01
相关资源
最近更新 更多