PNG圧縮
含まれる色数を減らしてPNG画像を圧縮します — デスクトップの最適化ツールと同じ手法です。透明度は保持され、ファイルは通常40%〜70%縮小され、すべてブラウザ内で動作します。
- ファイルは端末の外に出ません
- 無料、登録不要
- 透かしなし
- 一度読み込めばオフラインでも動作します
PNG圧縮の使い方
- 1
PNGを追加
PNGファイルをページにドラッグするか、選択するか、クリップボードから貼り付けます。
- 2
色数を選択
ほとんどのグラフィックでは256色が見た目上不可逆です。より小さいファイルにするには減らします。
- 3
ダウンロード
最適化された各PNGを保存するか、バッチをZIPとしてダウンロードします。
不可逆形式でもそれでも圧縮できる理由
PNGは各ピクセルを正確に保存するため、JPEGのように細部を破棄することはできません。できるのは反復性を活用することです。各行はまず隣接ピクセルとの差分として符号化するフィルタを通過し、その結果がDEFLATE — ZIPと同じアルゴリズム — で圧縮されます。両段階とも予測可能性に報いる仕組みです — 同じバイトパターンが繰り返されるほど、ファイルはよりきつく詰め込まれます。
異なる色数を減らすことがその予測可能性を生み出します。スマートフォンから直接のスクリーンショットには、微妙に異なる4万色もの色調が含まれることがあり、そのほとんどが誰にも見えない1ピクセル単位の変化です。それを慎重に選んだ256色のパレットに減らすと、知覚的にはほとんど何も変わらないまま、ピクセルデータは劇的に反復的になり、あとはDEFLATEが残りを処理します。コンテナは不可逆のままで、その中の画像が先に単純化されるのです。
これがPNG最適化の結果がコンテンツによってこれほど大きく異なる理由です。8色の平坦なロゴはすでにパレットの限界に近く、ほとんど縮小できません。グラデーションの多いUIスクリーンショットは、見た目に何の変化もないまま60%サイズを失うことがあります。
色数を選ぶ
正しいパレットサイズは、画像にどれだけ連続階調が含まれるかに完全に依存します。平坦なグラフィックは、そもそも多くの色を持っていなかったため大幅な削減に耐えます。グラデーション、影、写真的コンテンツを含むものは余裕が必要で、そうでなければ帯状になります — 滑らかなランプが目に見える段差に分解されます。
ディザリングはその緩和策です。丸め誤差を隣接ピクセルに分散させることで、目がそれらを再びなめらかなグラデーションとして混ぜ合わせ、パレットの各項目の間にはっきりしたエッジを見なくなります。ファイルサイズが数パーセントポイント増えるのは、データがわずかに反復的でなくなるためで、これがまさにその交換条件です — わずかなサイズを、一貫性を保つグラデーションと引き換えるのです。写真的なものには有効にしておき、ノイズを加えるだけの平坦なグラフィックでは無効にしてください。
- 256色
- ほとんどのスクリーンショットを含むほぼすべてで見た目上不可逆です。迷ったときの安全なデフォルトです。
- 128色
- ロゴ、アイコン、UIスクリーンショットでは見分けがつきません。ファイルをおよそ半分に削減します。Web素材の最良のデフォルトです。
- 64色
- 平坦なイラストやアイコンには良好です。写真やグラデーションはこのレベルではディザリングを有効にしても目に見える帯が出ます。
PNGが間違った選択である場合
PNGは決してPNGであるべきではなかった画像に頻繁に使われます。写真をPNGとして保存すると、同じ写真を品質85のJPEGとして保存した場合よりも通常5〜10倍大きくなり、どんなパレット削減もその差を埋められません — この形式は単純に連続階調向けに作られていないのです。画像がカメラから出てきたもので透明度がない場合、変換する方が圧縮するよりもはるかに大きな改善になります。
逆の誤りも同じくらいよくあります。テキストを含むスクリーンショット、はっきりしたエッジのロゴ、線画は、どんな妥当な品質でもJPEGとして見た目が悪くなります。周波数ベースの変換ははっきりした境界をぼかし、文字の周りにハローを残すためです。それらはPNGが適しており、どのみちJPEGより小さいことが多く、しかもピクセル単位で正確です。
- PNGのままにする
- ロゴ、アイコン、線画、テキストのスクリーンショット、図表、そして透明な背景が必要なもの。
- JPGまたはWebPに変換する
- 写真、そして透明度のないフルカラー画像全般。節約はパーセントではなく倍数で測られます。
よくある質問
PNGが不可逆でないのにどうやって圧縮できるのですか?
PNGのコンテナ自体は不可逆のままです — 変わるのはその中の画像です。異なる色数を減らすとデータがはるかに反復的になり、PNGに内蔵されたdeflate圧縮がそれをはるかにきつく詰め込みます。これはpngquantやTinyPNGが使うのと同じ手法です。
透明度は保持されますか?
はい。アルファチャンネルは完全にそのまま残され、完全に透明なピクセルはカラーパレットから除外されるため偏りを生みません。ロゴや切り抜きグラフィックはきれいなエッジを保ちます。
なぜTinyPNGよりも節約が少ないのですか?
ブラウザは32ビットPNGしか書き出せず、真の8ビットパレットPNGは書き出せないため、ネイティブの最適化ツールが達成する量のおよそ半分を実現します。その代わり、ファイルが端末から出ることは一切なく、月間の上限もありません。ロゴや平坦なグラフィックでは差は小さく、写真ではより大きくなります。
ディザリングは何をしますか?
丸め誤差を隣接ピクセルに分散させ、グラデーションが目に見える帯にならず滑らかなままにします。ファイルサイズが数パーセントポイント増える代わりに、写真やグラデーションでは有効にしておく価値があります — 平坦なグラフィックやスクリーンショットでは無効にしてください。
そもそもPNGを使うべきですか?
写真の場合は使うべきではありません — 同じ品質ならJPGやWebPの方が数倍小さくなります。PNGはロゴ、アイコン、テキストのスクリーンショット、そして透明度が必要なものに適した選択です。