PNG

PNG 形式とは — 可逆圧縮と透過背景

PNG 形式の誕生の背景(GIF の特許問題)と第3版(2025年、HDR・APNG・EXIF)までの歴史、可逆圧縮とチャンク構造、透過、写真だと容量が大きくなる理由を解説します。

拡張子.png
MIMEimage/png
規格W3C 勧告(1996) · ISO/IEC 15948 · 第3版(2025)
圧縮可逆(行フィルター + Deflate)
透過あり(8・16 ビットのアルファチャンネル)
アニメーションAPNG(第3版で正式採用)
色深度チャンネルあたり 1・2・4・8・16 ビット

PNG(Portable Network Graphics)は、1990年代半ばに GIF で使われていた LZW 圧縮の特許問題を避けつつ、GIF より優れた機能を提供するために作られた形式です。1996年に W3C 勧告となり、その後 ISO/IEC 15948 としても標準化されました。2025年6月には、第2版(2003年)以来22年ぶりの改訂版となる PNG 第3版 が W3C 勧告として公開され、アニメーション PNG(APNG)、HDR の色情報、EXIF チャンクが正式に規格に含まれました。

圧縮の仕組み

PNG はピクセルの値をまったく変えない 可逆 形式です。各行にフィルターをかけて「左・上のピクセルとの差」のような予測しやすい値に変換し、zip と同じ系統の Deflate アルゴリズムで圧縮します。同じ色が広く続けば差の値が 0 の連続になってとても小さく圧縮され、ピクセルごとに値が少しずつ違う写真はほとんど圧縮されません。

色を 256 色以下に減らしてパレット方式(インデックスカラー)で保存すると容量を大きく減らせますが、この処理自体は色を減らす劣化なので、結果が PNG であっても元画像とは異なる点に注意してください。

ファイルシグネチャとチャンク構造

PNG ファイルは必ず 8 バイトのシグネチャ(16 進数 89 50 4E 47 0D 0A 1A 0A)で始まります。その後に チャンク という単位が続き、各チャンクは長さ・種類(4 文字)・データ・CRC チェック値で構成されます。

チャンク役割
IHDR幅・高さ、ビット深度、カラー形式
PLTEパレット(インデックスカラーの場合)
tRNSパレット・単色画像の透過情報
IDAT圧縮されたピクセルデータ(複数に分割される場合あり)
eXIfEXIF メタデータ(第3版で正式採用)
cICPHDR などの色空間情報(第3版で追加)
acTL · fcTL · fdATAPNG のアニメーション制御・フレーム(第3版で正式採用)
IENDファイルの終わり

未知の補助チャンクは無視するよう設計されているため、新機能を追加しても古いソフトでファイルを開けます。APNG 非対応のビューアーが最初のフレームだけを表示するのも、この設計のおかげです。

透過

PNG はピクセルごとに 0〜255(16 ビットなら 0〜65,535)段階の アルファチャンネル を持てるので、半透明の影や髪の毛の輪郭まで自然に表現できます。背景を消した画像、ロゴ、アイコンを保存する標準形式として使われる理由です。

長所と限界

  • 文字・線・図表に最適:輪郭がくっきり保たれ、容量も JPG より小さいことが多くなります。
  • 何度保存しても劣化しない:編集途中のファイルに向いています。
  • 写真には非効率:同じ写真を JPG の数倍の容量で保存することになります。
  • APNG 対応:Can I use によると Chrome 59、Firefox 3、Safari 8 から対応しており、非対応のソフトは最初のフレームだけを表示します。

主な用途

画面キャプチャ、ロゴ・アイコン、透過背景の画像、図表・グラフ、編集用の元データ。印刷所が可逆形式のファイルを求めるときにも使われます。

他の形式に変換するとき

  • PNG → JPG:透明な部分は背景色で埋める必要があります。スクリーンショットを JPG にすると文字のまわりがにじむことがあるので、画質は高めにしてください(PNG を JPG に)。
  • PNG → WebP:可逆 WebP に変換すると、透過を保ったまま容量が減ることが多くあります。Google は可逆 WebP が PNG より平均 26% 小さいと発表しています。
  • PNG → ICO:ファビコンや Windows アイコンが必要なら PNG を ICO に 変換します。正方形の元画像を使うのがおすすめです。
  • 16 ビット PNG:ブラウザの Canvas はチャンネルあたり 8 ビットで処理するため、16 ビットの元画像を Web ツールで変換すると 8 ビットに減ります。

基準日: 2026-09-23

出典

← 形式事典へ