png_read_info (png_ptr, info_ptr);
{
png_byte color_type = info_ptr->color_type;
png_byte bit_depth = info_ptr->bit_depth;
...
最后两行我得到
错误:取消引用指向不完整类型的指针
怎么了?在 libpng 1.4 中,这总是可以的。
该png_info
结构已从png.h
1.5.0 中删除,现在您应该将此指针与png_get_*
andpng_set_*
函数一起使用。
如libpng 手册中所述:
png_info 结构旨在提供有关 PNG 文件的信息。曾几何时,png_info 的字段旨在让用户直接访问。然而,这往往会导致使用动态加载库的应用程序出现问题,因此开发了一组用于 png_info 的接口函数(png_get_*() 和 png_set_*() 函数),并且不推荐直接访问 png_info 字段..
例如:
png_uint_32 height;
height = png_get_image_height( png_ptr, info_ptr);
如果您尝试设置不再可直接访问的 info_ptr 的内容,请使用 png_set_IHDR()