ライブラリ Libpng を使用して、深さ 1 ビット (2 色) または 2 ビット (4 色) の PNG 画像を生成したいと考えています。
誰もそれを行う方法を知っていますか? 例をテストしましたが、それらはすべて 8 ビットの色深度で動作するようです。
私は png_set_IHDR を知っていますが、テストした例では、png_set_IHDR の深度パラメータを 8 から 2 または 1 に変更すると、プログラムは 2 または 4 の 1 つのピクセルを描画します。png_malloc 関数で作成されたメモリ割り当てが原因だと思います。
私が変更しようとしている例 ( http://www.lemoda.net/c/write-png/ ) では、png_malloc 関数がイメージのすべてのピクセルを sizeof uint8_t で割り当てます。
png_malloc (png_ptr, sizeof (uint8_t) * bitmap->width * pixel_size);
1 ビットまたは 2 ビットのピクセルを割り当てる方法を教えてください。
ありがとうJo2s