【发布时间】:2010-10-11 20:51:44
【问题描述】:
我需要从真彩色 PNG 文件中读取准确的未更改像素数据 (ARGB),最好从 PHP 中读取。
不幸的是,PHP 中的 GD 库与 alpha 通道混淆(将其从 8 位减少到 7 位),使其无法使用。
我目前假设我的选择是:
实现我自己的原始 PNG 阅读器以提取必要的数据。- 使用一些较少损坏的语言/库,并将其作为 shell 进程或 CGI 从 PHP 中调用。
不过,我很想听听任何其他想法,或者对一种方式优于另一种方式的建议......
编辑:我认为#1 已经出局了。我尝试将 IDAT 数据流传递给 gzinflate(),但它只是给了我一个数据错误。 (在 PHP 之外使用完全相同的数据执行完全相同的操作会产生预期的结果。)
【问题讨论】:
-
#1 应该出局了。安装 ImageMagick 可能更容易。话虽如此,PNG 比 JPEG 更简单。
-
实现一个 PNG 阅读器对于你想要用它做的几乎所有事情来说都太慢了。