png_read_info (png_ptr, info_ptr);
{
png_byte color_type = info_ptr->color_type;
png_byte bit_depth = info_ptr->bit_depth;
...
最後の2行については、
エラー: 不完全な型へのポインターを逆参照しています
どうしたの?libpng 1.4 では、これは常に問題ありませんでした。
png_info
構造体は 1.5.0 で から削除されたため、png.h
このポインタをpng_get_*
およびpng_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() を使用します。
libpng マニュアルで指定されているとおり