アニメーションpng (Debian11.4.0)

2022/08/04


アニメーションpng

当サイトでは画像ファイルをだいたいpngファイルを使っている。
昔はbmpだのgifだのがあったが、Unisys特許問題以降、pngに移行した。2004年に特許が失効したらしいが、いまさらgifに戻る理由もない。gifが問題だったのではなく画像圧縮技術(LZWアルゴリズム)が問題だったが、ここでの深追いはやめよう。
アニメーションgifが使いたくてgifファイルを使った時期があったが、Javascript言語でパラパラアニメ風なものをつくって以来、アニメーションgifのことは忘れていた。
gifだけでなく、pngでもアニメーションができたはずだ。

インストール

#管理者権限で実行
apt install -y apngasm apngdis apngopt gif2apng

apngをつくってみる

つくってみよう。
#アニメーションのもとをつくる
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "0" frame00.png
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "1" frame01.png
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "2" frame02.png
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "3" frame03.png
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "4" frame04.png
convert -size 256x128 xc:gray -font "DejaVu-Sans" -fill yellow -pointsize 64 -annotate +128+96 "5" frame05.png

#アニメーションpngをつくる
apngasm animation.png frame*png 1 2

#アニメーションgifをつくる
convert -loop 0 -delay 50 frame*png animation.gif

#gif2apngというツールもあるらしい。
gif2apng animation.gif gif2apng.png

#apngopt( optimize APNG animated images)というツールがあるらしい
#gif2pngでapngをつくったあとにファイルサイズを小さくする道具らしい
apngopt gif2apng.png g2.png

#apngasmでつくったapngのファイルも小さくなるのだろうか?
apngopt animation.png a2.png

みてみよう

animation.png,animation.gifはどちらも2fpsにしてある。 大したことではないが、pngのほうがgifよりファイルサイズが小さい。
animation.png
3279バイト
animation.gif
7001バイト
animation.png animation.gif

apngopt最適化ツールの効果

amimation.pngにapngoptを使う(a2.png)とファイルサイズはすこしだけ小さくなる。
animation.gifをapngに変換する(gif2apng.png)とファイルサイズはかなり小さくなる。
gif2apng.pngにapngoptを使う(g2.png)とファイルサイズはさらに小さくなる。
a2.png
3240バイト
gif2apng.png
3516バイト
g2.png
3477バイト
animation.png animation.gif animation.gif