【发布时间】:2020-11-17 22:20:12
【问题描述】:
我正在尝试使用UPNG.js 解码this file,并获得以下输出:
{ tabs: { pHYs: [ 2835, 2835, 1 ] },
frames: [],
width: 10,
height: 1,
depth: 16,
ctype: 0,
data:
Uint8Array [
255,255,
255,255,
255,255,
255,255,
255,255,
253,23,
252,204,
252,130,
252,56,
255,255,
255
] }
data 数组的前 20 个条目有意义,因为每个像素由 2 个字节表示。但是,我们得到了一个额外的字节。我已经针对 gimp 测试了前 20 个字节,所以我知道我得到了正确的像素值。在较大的图像中,我们每行像素获得一个额外的字节。在进行任何进一步处理之前,我可以检查解码的像素数据并删除每个最后一个字节,但我对删除可能对结果图像进行编码可能需要的有用信息感到不舒服。
我尝试使用其他图像处理库,但我找不到任何替代方案,既可以在浏览器中使用,也不能在后台将图像转换为 8 位 RGBA。
另外,我知道TypedArrays 的字节序很可能是小字节序,而参考图像的字节序很可能是大字节序。我目前正在手动翻转Uint8Array 中的字节,然后再将其转换为Uint16Array。有没有更好的办法?
【问题讨论】:
标签: javascript png