netpbm で透明 PNG に背景色を合成

IE6(Windows)はアルファチャンネル付きの透明 PNG が透明にならない。差し当たって背景色との合成だけできればいいので、透明にせずに背景色を合成した PNG を作ればいいのだが、背景色を変更した時 GIMP とかで手で作り直すのは面倒。netpbm を使えば簡単なスクリプトで合成できる。

pngtopnm -mix -background=#cceeff foo.png | pnmtopng > foo-mix.png

これで、foo.png に背景色 #cceeff を合成した foo-mix.png ができる。