【发布时间】:2015-06-25 18:14:59
【问题描述】:
我有一个正方形 (1024x1024) 8 位灰度图像,我试图将其用作“风景”(它是一个巨大的高度模型),而我想要做的只是得到类似
byte = pngimg.at(x, y)
我一直在搜索 libpng 的页面和谷歌搜索,但没有任何显示。在 Java 中,它就像缓冲图像一样简单。 png 的 C++ 等价物在哪里?
【问题讨论】:
-
我的意思是8位灰度值。
-
我已经有了 FILE* 来打开文件,但是我找不到任何关于实际提取图像数据的 libpng 文档,但这一切都是读取压缩字节。如果可能的话,我希望能够对包含传递坐标的块进行充气,获取 Grey-Byte,然后对块进行放气。
-
In Java it's as simple as a buffered imageC++ 语言对图像类型一无所知。您可能想询问基本上包装 libpng 库的第三方库,以便像素访问成为库的工作,而不是您的工作。许多成像库利用现有的低级库,如 libpng、libtiff 等,并将所有功能封装在易于使用的函数和类中。 -
这个例子可能对你有用:gist.github.com/niw/5963798
-
你走了多远?如果您能够加载图像,则可以使用
png_get_rows来获取行指针列表,并索引到该行以获取特定的像素值。请参阅libpng.org/pub/png/libpng-manual.txt。
标签: c++ image png pixel libpng