Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

libpng 1.5.10 error: dereferencing pointer to incomplete type

Tags:

c

libpng

png_read_info (png_ptr, info_ptr);
{ 
    png_byte color_type = info_ptr->color_type;
    png_byte bit_depth  = info_ptr->bit_depth;
    ...

For last 2 lines I get

error: dereferencing pointer to incomplete type

What's wrong? In libpng 1.4 this was always ok.

like image 606
askovpen Avatar asked May 08 '12 22:05

askovpen


2 Answers

The png_info struct was removed from the png.h in 1.5.0 and now you should use this pointer with the png_get_* and png_set_* functions.

As specified in libpng manual:

The png_info structure is designed to provide information about the PNG file. At one time, the fields of png_info were intended to be directly accessible to the user. However, this tended to cause problems with applications using dynamically loaded libraries, and as a result a set of interface functions for png_info (the png_get_*() and png_set_*() functions) was developed, and direct access to the png_info fields was deprecated..

For example:

png_uint_32 height;
height = png_get_image_height( png_ptr,  info_ptr);
like image 100
MByD Avatar answered Sep 21 '22 11:09

MByD


If you are trying to set contents of info_ptr which is no longer directly accessible, use png_set_IHDR()

As specified in libpng manual

like image 28
Nalin Avatar answered Sep 22 '22 11:09

Nalin