2.

PNG(.png)画像形式の完全ガイド — 可逆圧縮・アルファ透過・APNG・他形式比較

編集
この記事の要点
  • PNG (Portable Network Graphics) は 1996 年策定の 可逆圧縮 ビットマップ形式で、GIF の特許問題を回避するために設計された
  • 圧縮アルゴリズムは Deflate (ZIP と同じ) で、写真より UI・スクリーンショット・ロゴで威力を発揮する
  • 8bit のアルファチャンネルで 滑らかな半透明 を表現でき、ウェブの UI 素材・アイコン・図解の事実標準
  • カラータイプは indexed (パレット 256 色)、grayscale、truecolor (24bit/48bit)、+α の組合せで選べる
  • Adam7 インタレース により、回線が細い環境でも 7 パスで段階的に表示されるが、ファイルサイズはやや増える
  • APNG (Animated PNG) はアニメーション拡張で、GIF を可逆・フルカラー・α 透過で置き換えられる
  • tEXt / iTXt / zTXt チャンク でメタデータを格納できるが、EXIF を持つのは PNG 1.5 以降の eXIf チャンク

概要

PNG (Portable Network Graphics) は、Unisys が保有していた GIF の LZW 特許 (1980 年代) に縛られないオープンな代替フォーマットとして、1996 年に W3C の勧告となった可逆圧縮ビットマップ形式である。当初は「PNG's Not GIF」のジョーク再帰アクロニムでも知られた。ISO/IEC 15948 として国際標準化もされている。

主な特徴は (1) Deflate による可逆圧縮、(2) 1〜16bit のグレースケールから 48bit のトゥルーカラーまでのカラーモード、(3) 8bit のアルファチャンネルによる半透明、(4) ガンマ補正・色空間情報を持てる sRGB / iCCP チャンク、(5) tEXt によるメタデータ、である。写真の圧縮率では JPEG に大きく劣るが、UI・ロゴ・スクリーンショット・図解では 圧倒的に PNG が有利 である。輪郭がくっきりした画像をブロック単位の DCT に通すとモスキートノイズが出るが、PNG では出ない。

内部構造とマジックナンバー

PNG は「8 バイトの固定シグネチャ」+「複数のチャンク列」という単純な構造で、各チャンクは 長さ (4)・タイプ (4)・データ・CRC32 (4) で構成される。

場所HEX意味
先頭 8 バイト89 50 4E 47 0D 0A 1A 0APNG シグネチャ (ASCII で .PNG\r\n.\n)
最初のチャンクタイプ IHDR画像ヘッダ (幅・高さ・ビット深度・カラータイプ)
必須タイプ IDAT圧縮された画素データ (Deflate)
末尾タイプ IENDファイル終端
任意タイプ tRNSパレット PNG の透過情報
任意タイプ tEXt / iTXtテキストメタデータ

シグネチャの 1 バイト目を 0x89 にしているのは「7bit 通信路で文字化けすると壊れる」ことを検出するため、そして 0D 0A0A の改行コードを両方含めているのは「テキストモードで FTP 転送して改行が変換されたら壊れる」ことを検出するためで、設計当時のネットワーク事情がにじむ。

主な用途

  • ウェブの UI 素材・アイコン: ロゴ、ボタン、スプライト画像。半透明背景のオーバーレイにも使える。
  • スクリーンショット: Windows の Win+Shift+S、macOS の Cmd+Shift+4 はいずれも既定 PNG。
  • 図解・ダイアグラム: 矢印やテキストが多い画像で JPEG にすると輪郭が滲むが、PNG なら劣化しない。
  • ゲームのスプライト・テクスチャ: アルファ透過が要る 2D 素材。
  • 業務系の画面キャプチャ・帳票プレビュー: バグ報告チケットに貼られる画像のほとんどは PNG。

関連形式との比較

形式圧縮透過アニメファイルサイズ (UI 素材)ファイルサイズ (写真)
PNG可逆8bit αAPNG非常に大
JPEG非可逆なしなし大 (輪郭が滲む)
GIF可逆 (LZW)1bit のみあり中 (256 色制限)かなり大
WebP (lossless)可逆ありあり小 (PNG より 20-30% 小)
SVGテキスト圧縮ありSMIL/CSS極小 (図形なら)不向き

UI 素材は SVG が可能なら SVG、ラスタなら PNG または WebP lossless、写真は JPEG / WebP / AVIF、という棲み分けが一般的。

編集・閲覧ツール

  • OS 標準ビューア: Windows フォト、macOS プレビュー、Linux 各種、Android / iOS のギャラリー。すべて標準対応。
  • Photoshop / GIMP / Affinity Photo: 編集の主力。レイヤー情報は PSD / XCF で保持し、書き出しで PNG。
  • pngquant: 24bit PNG を パレット化して 50-70% 縮める 半可逆ツール。視覚的劣化はほぼ気付けない水準。
  • oxipng / optipng / pngcrush: 無劣化 圧縮ツール。Deflate のパラメータ再探索で 5-20% 削れる。
  • ImageMagick: magick in.png -strip out.png でメタデータ除去だけでもサイズが減る。

注意点・落とし穴

  • 写真を PNG で書き出すと巨大になる: 1000×1000 の自然画なら JPEG quality 85 で 200KB のものが PNG だと 2-3MB になる。写真は JPEG / WebP に。
  • IE6 の半透明バグ (現代ではほぼ無関係だが歴史的に重要): IE6 は α PNG を正しく合成できず、AlphaImageLoader で回避していた。
  • APNG は Safari の対応が遅れた: 現在は主要ブラウザで動くが、業務系で IE 互換が要る場合は GIF にする判断もある。
  • indexed PNG (パレット) と truecolor PNG の混同: pngquant でパレット化したファイルを Photoshop で開いて再保存するとパレット情報が崩れることがある。
  • メタデータ漏洩: PNG にも tEXt や eXIf チャンクで EXIF を持てる。スクリーンショットでも撮影アプリ名などが入る場合があり、機密スクショは exiftool -all= で除去するのが安全。
  • gAMA / sRGB チャンクの食い違い: 環境によって色が若干違って見える原因。書き出し時に sRGB に統一する。

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. JPEG(.jpg / .jpeg)
  2. PNG(.png)
  3. GIF(.gif)
  4. SVG(.svg)
  5. WebP(.webp)
  6. AVIF(.avif)
  7. HEIC(.heic / .heif)
  8. BMP(.bmp)
  9. TIFF(.tiff / .tif)
  10. ICO(.ico)

最近更新/作成されたページ