在我的项目中处理webservices。我不确定bankend逻辑,比如他们用来在数据库中存储图像的方法。
这是我从服务器获取的个人资料图片的响应
Array
(
[0] => -119
[1] => 80
[2] => 78
[3] => 71
[4] => 13
[5] => 10
[6] => 26
.
.
.
[3778] => 123
[3779] => 60
[3780] => -82
[3781] => -57
[3782] =
)
如何将此数值数组转换为PNG图像?
我创建了一个新的图像文件,并使用
将所有内容放入该文件中file_put_contents('downloads/myImage.png', $profileImage);
$ profileImage变量包含上面的数组。
此代码使用一些数据转储创建一个新图像。我知道这样做我错过了一些东西。请帮我解决一下这个。
我使用相同的代码在同一个项目中从服务器创建PDF文件。这工作正常。这就是为什么我尝试使用相同的代码来获取我的图像。但它没有使用图像
答案 0 :(得分:0)
您的问题有点不清楚 - 我无法判断您是要将PNG文件保存在某处还是将其作为对HTTP请求的响应提供。此外,您似乎暗示$profileImage
是一个数组变量,但是将其作为file_put_contents()
的参数提供,它需要一个字符串。
但不管怎样,你提供的二进制数据看起来都不错。
如果$profileImage
是有符号字节值的数组,则可以使用以下命令将其转换为二进制数据字符串“
$rawPNG = implode(array_map('chr',$profileImage));
如果需要,可以使用file_put_contents()
将此数据写入文件。 (该函数是二进制安全的,所以不应该有任何问题。)
或者,如果要将PNG图像返回到Web客户端,只需使用适当的Content-Type标头回显它:
header('Content-Type: image/png');
die ($rawPNG);