8
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 中,这总是可以的。

4

2 回答 2

20

png_info结构已从png.h1.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);
于 2012-05-11T05:21:35.907 回答
1

如果您尝试设置不再可直接访问的 info_ptr 的内容,请使用 png_set_IHDR()

libpng 手册中所述

于 2018-08-22T18:13:42.143 回答