【发布时间】:2014-01-06 12:56:11
【问题描述】:
我正在用 C 编码,我必须使用 png 图像,所以我使用 libpng 库。在我的项目中,我使用这种结构:
png_bytep *row_pointers; /* <-- to declare the pointer that will contain the image
and this to initialize the pointer to contain the image. */
row_pointers = (png_bytep*)malloc(sizeof(png_bytep) * height);
for(int y = 0; y < height; y++) {
row_pointers[y] = (png_byte*)malloc(png_get_rowbytes(png,info));
}
我的问题是:在这段代码之后,我的图像被复制到 row_pointers 中,我想将它复制到 png_byte map[x][y] 中,这样我就可以轻松地逐个像素地工作。
有人可以帮助我吗?
谢谢
【问题讨论】:
-
你确定
row_pointers不是双指针吗? -
不,我不是。我已经复制了这部分代码,这就是我配音的原因。 PS:如果它是双指针,我怎么能把它复制到另一个更简单的结构来管理?
-
@hacks
png_bytep最后的p表示它是一个字节指针。所以是正确的。他必须在每个 malloc 中删除他的演员表。在 C 中不需要它。 -
删除每个演员应该是这样的:row_pointers = malloc(sizeof(png_bytep) * height); for(int y = 0; y