C++ 巴布亚新几内亚++;读取像素颜色值

C++ 巴布亚新几内亚++;读取像素颜色值,c++,png,libpng,C++,Png,Libpng,如何读取png中的像素颜色值?我看不出有任何方法可以读懂表中的值。我需要分别获取所有的rgba值,并将它们附加到一个char数组中 我从未使用过png++,但通过阅读我认为你可以使用image[Y][X]访问png::image的一个像素(X,Y),然后通过访问image[Y][X]访问红色、绿色和蓝色值。红色等等。无法添加注释,因此如下:) 实际上,您应该想要图像[Y][X],因为第一个[]会让您进入Y-第行,然后进入该行的X-第列 顺便说一句,我是PNG++的作者。请随时在邮件列表或我的私人

如何读取png中的像素颜色值?我看不出有任何方法可以读懂表中的值。我需要分别获取所有的rgba值,并将它们附加到一个char数组中

我从未使用过png++,但通过阅读我认为你可以使用
image[Y][X]
访问
png::image
的一个像素(X,Y),然后通过访问
image[Y][X]访问红色、绿色和蓝色值。红色
等等。

无法添加注释,因此如下:)

实际上,您应该想要
图像[Y][X]
,因为第一个
[]
会让您进入
Y
-第行,然后进入该行的
X
-第列


顺便说一句,我是PNG++的作者。请随时在邮件列表或我的私人电子邮件中提出更具体的问题,如果您愿意,也可以在这里提问。:)

我试试看。我是C++初学者,所以我真的不太理解:谢谢!我应该在哪里将其更改为[X][Y]?在我看来更符合逻辑。你什么时候会实施这个计划?引用end_info.hpp“”//TODO:添加方法以读取/写入文本注释等。“@Neb:这就是
运算符[]
在C++中的工作方式:您只能向其传递一个参数。在PNG++中,图像被认为是行的向量,因此
image[N]
得到第N行。如果您想以更直观的方式访问像素,请使用
get/set_pixel(x,y)
。它确实会因为检查其索引范围而受到惩罚。关于对文本评论的支持:当我有足够的空闲时间和动力,或者有人发送了一个非常好的补丁时。:)@亚历克斯,你能解释一下像素的内存布局吗?例如,如果行(扫描线?)一起分配并打包,我可能会使用指针将PNG作为纹理加载到OpenGL上下文中,而不是先逐像素将其复制到内存中。顺便说一句,你的图书馆很整洁,也很有帮助。我敢打赌,如果我再做一些挖掘,我可能会自己回答这个问题,但我想先问一下。谢谢使用默认的像素缓冲区,布局是不连续的,但是添加这样的缓冲区和专门化图像类模板来使用它应该很容易。