PHP 将原始 RGBA 保存为 PNG/GIF
我有一个图像文件,带有 128 字节标头,后跟原始 RGBA 数据,宽度和高度作为短整数(大端)存储在偏移量 72 和 74 处。我已经成功地读取了标题,但是,我需要一种方法将原始 RGBA 保存为 PNG 格式和/或 GIF。我怎样才能在 PHP 中做到这一点?
干杯
I have an image file, with a 128 byte header, followed by raw RGBA data and the width and height are stored at offset 72 and 74 as short ints (big endian). I have successfully been able to read the header, however, I need a way to save the raw RGBA as PNG format and/or GIF. How can I do that in PHP?
cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果您安装了 gd lib(使用 phpinfo(); 检查),它类似于
编辑
您说它是 RGBA 数据。假设每个通道标准 4 个字节,并且您的原始数据是一个整数数组,它应该是:
If you have the gd lib installed (check with phpinfo(); ) it's something like
EDIT
You said it was RGBA data. Assuming standard 4 bytes per channel and that your raw data is an integer array, it should be:
虽然您可以自己从源流生成未压缩的 PNG,但这需要付出很大的努力。 (需要手工制作 png32 标头,并写出未压缩的 deflate 块,因为 PNG 本身不支持未压缩的有效负载)。
使用 imagemagick 更容易。只需将原始 RGBA 流写入临时文件并使用:
While you could generate an uncompressed PNG from your source stream yourself, that takes a lot of effort. (Need to handicraft the png32 header, and write out uncompressed deflate chunks because PNG itself supports no uncompressed payloads).
It's easier with imagemagick. Simply write out your raw RGBA stream to a temporary file and use:
我会查看 gd 或 imagemagick 其中一个或两个应该可以解决问题
I would look at gd or imagemagick one or both of these should do the trick