LibPNG读取16 bit integer图片时遇坑记录
LibPNG读取16-bit-integer的PNG时,我发现257个像素的图片,被
png_get_rowbytes(png, info)扫出来了514个数据(正好为像素数量2倍),并且此时的数据读出来的也是乱码。
颜色用0~255表示即可,这种情况也许就是8位图。
所以根据猜测,将数据梳理中的x和x+1进行拼接,转换成16 bit integer,然后再转换成32位的int。结果果然正确了。
uint16_t red = (row_pointers[y][2 * x] << 8) | row_pointers[y][2 * x + 1]; // R channel value
int value = static_cast<float>(red) / 65535.0f);
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0协议,完整转载请注明来自 零度冰山
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果


