只是想知道是否有人知道如何将bmp字节数组转换为实际的图像?
图像提取:
424d 4284 0300 0000 0000 4200 0000 2800
0000 4001 0000 f000 0000 0100 1800 0300这不适用于bmp (其中data是表示图像的输入字符串)
$im = imagecreatefromstring($data);
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
else {
echo 'An error occurred.';
}谢谢!
发布于 2013-11-13 01:13:35
就这一点而言,imagecreatefromstring()或PHP的GD似乎不支持BMP 1
它似乎支持WBMP,这不是BMP。2
此外,imagecreatefromstring()期望接收整个文件,而不仅仅是您可能拥有的任何选定像素的“提取”。如果它接受原始像素数据(忘记了诸如颜色格式、位数等问题),您仍然需要为GD指定至少每行到imagecreatefromstring()的像素数,以构成您的“原始数据”。
由于BMP的本质是数据是未压缩的像素数据,如果确实需要,我猜您可以imagecreate()创建一个空图像,并在for (y) { for (x) { ... }}循环中使用imagesetpixel()来设置来自原始BMP文件提取的像素数据。虽然不知道你想做什么,但我敢打赌还有更简单的方法可以做到。
1 / "imagecreatefromstring()返回表示从给定图像获得的图像的图像标识符。如果您的PHP版本支持这些类型,则会自动检测到它们: JPEG、PNG、GIF、WBMP和GD2。“
2
https://stackoverflow.com/questions/19935398
复制相似问题