
古い BPG エンコードされた画像がいくつかあります。入力形式として PNG が使用されたため、(空の) アルファ チャネルが取得され、新しい libbpg ではデコードできません。
バージョン0.9.4:
- アルファ プレーン エンコーディングを変更し、プログレッシブ表示とストリーミング エンコーディングを可能にしました。この変更は互換性がないため、以前のバージョンの形式のアルファを含む画像はデコードできません。
このアルファ チャンネルは必要ありません。これをロスレスで新しい BPG 形式に変換するにはどうすればよいでしょうか?
答え1
私のツールを使用してアルファ チャネルを削除します。https://gist.github.com/vi/9297cd5bf80f0b34e8a2
古い BPG ファイルからアルファ チャネルを削除し、新しい BPG デコーダーでデコードできるようにします。
$ bpgdec -i test.bpg
size=1606x1263 color_space=YCbCr alpha=1 premul=0 format=4:2:0 limited_range=0 bit_depth=8 animation=0
$ bpgdec test.bpg
Could not decode image
$ bpg93_remove_alpha.pl < test.bpg > test.noa.bpg
magic: 425047FB
PixelFormat: 1 alpha: 1 bitdepth: 8
ColorSpace: 0 ExtPresent: 0 Alpha2: 0 LimitedRange: 0 ReservedZero: 0
Width: 1606 Height: 1263
Picture data length: 81969
Alpha data length: 239
$ bpgdec -i test.noa.bpg
size=1606x1263 color_space=YCbCr format=4:2:0 limited_range=0 bit_depth=8 animation=0
$ bpgdec test.noa.bpg
$