【发布时间】:2013-01-30 09:16:28
【问题描述】:
我想使用 Libpng 库生成 1 位(2 种颜色)或 2 位(4 种颜色)深度的 PNG 图像。
有人知道怎么做吗?我已经测试了示例,它们似乎都适用于 8 位色深?
我知道 png_set_IHDR 但在我测试的示例中,当我将 png_set_IHDR 中的深度参数从 8 更改为 2 或 1 时,我的程序会绘制 2 或 4 的一个像素。我认为,这是由于使用png_malloc 函数。
在我尝试修改的示例中(http://www.lemoda.net/c/write-png/),png_malloc 函数将图像的所有像素分配为 sizeof uint8_t。
png_malloc (png_ptr, sizeof (uint8_t) * bitmap->width * pixel_size);
你能告诉我如何分配 1bit 或 2bits 像素吗?
谢谢 乔2s
【问题讨论】:
-
直接使用
png_set_IHDR,位深为1或2,还需要什么?