调色图像所需的有效调色板
valid palette required for paletted images
当使用libpng
编写使用调色板(PNG_COLOR_TYPE_PALETTE
)的PNG图像时,我看到错误:
调色图像所需的有效调色板
造成这种情况的原因是什么?我该如何解决?
确保在调用png_write_info
之前调用png_set_PLTE
。
例如:
// Set the colour palette to use
unsigned paletteSize = ...;
assert(paletteSize <= PNG_MAX_PALETTE_LENGTH);
png_color* palette = (png_color*)png_malloc(png_ptr, paletteSize*sizeof(png_color));
for (unsigned p = 0; p < paletteSize; p++)
{
png_color* col = &palette[p];
col->red = ...;
col->green = ...;
col->blue = ...;
}
png_set_PLTE(png_ptr, info_ptr, palette, paletteSize);
png_write_info(png_ptr, info_ptr);
// ... png_write_image, png_write_end
png_destroy_write_struct(&png_ptr, &info_ptr);
png_free(png_ptr, palette);
相关文章:
- 欧拉项目#8答案是大以获得有效答案
- 调整大小后指向元素值的指针unordered_map有效?
- 为什么是0;C++中的有效语句
- 最高有效数字侧的第N位
- GCC对可能有效的代码抛出init list生存期警告
- 有效地使用std::unordered_map来插入或增加键的值
- c++中O(n^(1/3))中一个数的除数的有效计数
- 使用无符号字符数组有效存储内存
- 自定义先决条件对移动分配运算符有效吗
- 为什么将值返回函数传递给重载=运算符对运算符函数有效,而对其他运算符无效
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 为什么这种直接初始化有效?(C++17)
- 递归函数有效,但无法记忆
- 在C++中初始化向量映射的最有效方法
- 如果变量名称不跟在 char* 后面,const char* 是否有效?
- 钳制迭代器是否有效
- 如何有效地在 std::vector 中插入一对?
- C++模板 t 不是有效的模板类型
- 检查由括号、方括号和大括号组成的一组方括号是否有效?
- 调色图像所需的有效调色板