透過PNGを透過のまま軽くする|色数を減らす圧縮のしくみ
画像リサイズ・圧縮コラム
透過PNGを軽くしようとして、JPEGに変換したら背景が真っ白になってしまった。
画像を扱っていると、一度は通る失敗かと思います。
透過を保ったまま軽くしたい、というのはPNG特有の悩みで、JPEGとは事情がかなり違います。
PNGには「画質」のつまみが無い
JPEGやWebPには画質のパラメータがあり、数値を下げれば軽くなります。
一方でPNGは、元の絵を完全に復元できる方式(可逆圧縮)なので、そもそも「少し劣化させて軽くする」つまみを持っていません。
ではPNGはどう軽くするのかというと、使う色の数を減らします。
写真ではない画像、たとえばイラストやアイコンは、見た目の印象を保ったまま色数をかなり落とせます。
フルカラーから256色に減らしても、多くの絵では違いが分かりにくい、というのがこの方式が成り立つ理由です。
Shrinkumaでは、画質のスライダーを動かすと、PNGについてはこの色数の段階が変わります。※色数が減るとグラデーションの部分に段差が出ることがあります。写真をPNGで持っている場合は、JPEGやWebPへの変換も検討してみてください。
透明部分はどうなるか
色数を減らす方式では、透明の情報は保たれます。
ロゴやアイコン、背景を切り抜いた素材のような透過PNGを、透明な部分を保ったまま軽くできます。
Shrinkumaは、出力形式が「元と同じ」であればPNGをPNGのまま扱うので、意図せず別形式に変わることはありません。
透過を捨てる変換になるのは、出力形式にJPEGを選んだ場合だけです。
JPEGは透明を表現できない形式なので、透明だった部分は白で塗られます。
この場合は変換の前に警告を出すようにしています。
目標のサイズに届かないこともある
「500KB以下」のようにサイズを指定した場合、色数を段階的に落としながら目標に近づけていきます。
ただ、下限まで落としても届かないことはあります。
そのときは黙って超過したファイルを出すのではなく、「目標サイズに届きませんでした」と表示します。
届かない場合は、長辺のピクセル数も一緒に下げるのが結局は近道です。
色数より寸法のほうが、ファイルサイズへの効き方は素直なところがあります。
画像をまとめてリサイズ・ZIP一括ダウンロード
Shrinkumaならブラウザ内で安全に画像を圧縮できます。