8
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 では、これは常に問題ありませんでした。

4

2 に答える 2

20

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);
于 2012-05-11T05:21:35.907 に答える
1

直接アクセスできなくなった info_ptr の内容を設定しようとしている場合は、png_set_IHDR() を使用します。

libpng マニュアルで指定されているとおり

于 2018-08-22T18:13:42.143 に答える