PNGとは何か?写真・カメラ向けにわかりやすく解説 — 特徴・使いどころ・最適化方法

概要:PNGとは何か

PNG(Portable Network Graphics)は、可逆(ロスレス)圧縮を用いるラスター画像フォーマットの一つで、1996年にPNG開発グループによって策定されました。GIFの特許問題に対する代替として誕生し、特に線画・ロゴ・スクリーンショット・透過画像で広く使われています。PNGは色精度や透過(アルファチャンネル)をサポートし、劣化なく画像を保存できるため、画像編集ワークフローの中間ファイルや合成素材として重宝されます。

技術的仕様の要点

PNGファイルは8バイトのシグネチャ(16進で: 89 50 4E 47 0D 0A 1A 0A、10進で: 137 80 78 71 13 10 26 10)から始まり、チャンク(chunk)という単位でデータが格納されます。主要チャンクには次があります。

  • IHDR:画像の幅・高さ、ビット深度、カラーモード(グレースケール/トゥルーカラー/パレット/アルファ含むか)などの基本情報。
  • PLTE:パレット(インデックスカラー)テーブル。インデックス形式(PNG-8相当)で使用。
  • IDAT:実際の画像データ(フィルタ適用後にzlib/DEFLATEで圧縮)。複数のIDATチャンクに分割されることがある。
  • IEND:ファイルの終端を示す。

各チャンクは長さ(4バイト)、種類(4バイト)、データ(可変)、CRC(4バイト)で構成され、データ整合性はCRC-32で保たれます。PNGは内部でzlib/DEFLATE圧縮方式を使用し、各スキャンラインに対してフィルタ(None, Sub, Up, Average, Paeth の5種類)を適用してから圧縮することで圧縮率を高めます。また、逐次表示を可能にするAdam7のインタレースもサポートしています。

カラー形式とビット深度

PNGは以下のカラータイプを持ちます(代表的なもの):

  • グレースケール(0)
  • トゥルーカラー(RGB, 2)
  • パレット(インデックスカラー, 3)
  • グレースケール+アルファ(4)
  • トゥルーカラー+アルファ(RGBA, 6)

ビット深度は1,2,4,8,16ビットが利用可能で、カラータイプによって組み合わせが制限されます(例:パレットは1/2/4/8、トゥルーカラーは8/16など)。16ビット/チャネルのPNGはハイビット深度のワークフローで有用ですが、表示ソフトやブラウザによっては8ビットしかサポートしない場合があるため運用には注意が必要です。

PNGと写真(カメラ)ワークフロー

カメラ撮影→編集→公開の流れでPNGをどう使うかを整理します。

  • 撮影:カメラが直接PNGで保存することは稀です(多くはJPEG/RAW)。RAWは現像ソフトで現像してTIFFやJPEG、あるいはPNGに書き出します。
  • 編集(中間ファイル):レイヤー合成やアルファを含む作業の中間ファイルとしてPNGは有用。色劣化がないため、編集の途中保存形式として適しています(ただしEXIFなどの撮影メタデータは標準的に保持されない)。
  • 公開:Webや資料での公開では、写真用途ではJPEGやHEIF/AVIFの方がファイルサイズ対画質で有利な場合が多い。PNGは主にグラフィックや透過が必要な画像で推奨されます。

PNGの利点と欠点(写真用途に焦点を当てて)

利点:

  • ロスレスで画像品質が保たれる(編集の繰り返しに強い)。
  • アルファチャンネルによる透過を標準サポート。合成作業で便利。
  • パレット方式で小サイズ化できる(イラストやアイコンなど)。

欠点:

  • 写真のような連続色の画像ではJPEGに比べてファイルサイズが大きくなりがち。
  • EXIFのような撮影情報を標準的に格納する仕組みがない(iTXt等で任意に入れることは可能だが互換性に問題がある)。
  • 配信やストレージ面ではWebP/AVIFの方が効率的な場合がある。

圧縮・最適化の実践

PNGは可逆圧縮ですが、同じ画像でもツールやフィルタ選択によってサイズが大きく変わります。よく使われる最適化手法:

  • フィルタ方式の最適化(各行ごとに最適なフィルタを選ぶ)。
  • zlibエンコード最適化(zopfli, pngcrush, optipng, pngoutなどのツール)。
  • 必要に応じた量子化(pngquantなど)でカラー数を減らしてサイズを劇的に下げる(これは非可逆だが見た目をほとんど保てることが多い)。
  • 不要なチャンク(テキストチャンク、sRGBやその他のメタデータ)を削除して軽量化する。

写真をWeb向けに軽量化する場合、まずJPEG/AVIF/WebPでの出力を検討し、どうしても透過が必要な部分はPNG(あるいはWebPのアルファ対応)にする、といった使い分けが現実的です。

PNGと色管理・メタデータ

PNGはiCCPチャンクでICCプロファイルを埋め込め、sRGBチャンクやgAMA/chrmでガンマや色度情報を持てます。これにより色管理は可能ですが、EXIFのような撮影情報(カメラモデル、撮影日時、露出情報など)をそのまま扱う標準はありません。現像情報や撮影データを完全に保持したい場合はRAWやTIFFをアーカイブに使うことを推奨します。

アニメーションと拡張:APNG・MNG

PNG自体は静止画フォーマットですが、APNG(Animated PNG)はアニメーションを可能にする拡張で、主要ブラウザの多くが対応しています。MNGはより複雑なアニメーションやオブジェクト機能を持ちますが、普及していません。現代のWebではアニメーションが必要ならAPNGか、さらに効率的なWebP/AVIFアニメーションを検討すべきです。

実践的な使い分け(簡潔なガイド)

  • ロゴ・アイコン・インフォグラフィック・スクリーンショット→PNG(特に透過が必要な場合)
  • 写真の最終配信用(Web)→JPEG/AVIF/WebP優先(サイズ重視)
  • 編集用の可逆保存→PNG(16bit対応が必要なら16bit PNGやTIFFを検討)
  • アニメーション→APNGやWebPアニメーション、あるいは動画フォーマット

まとめ

PNGはロスレス・透過・豊富なチャンクによる拡張性といった強みを持ち、写真編集ワークフローの中間ファイルやグラフィック素材として非常に有用です。一方で写真をそのまま公開する用途ではファイルサイズ面で不利なことが多く、用途に応じてJPEG、WebP、AVIF、TIFFなどと使い分けることが重要です。最適化ツールや色管理の扱いを知っておくと、カメラで撮った画像を高品質に保ちながら柔軟に活用できます。

参考文献