PNG

読み:ピン
読み:ピング
外語:PNG: Portable Network Graphics
品詞:名詞

画像ファイルフォーマットの一つで、代表的なものの一つである。NASAのThomas Boutellによって開発された。

由来

PNGは、従来のGIFで使われるデータ圧縮アルゴリズムLZW法がUnisys社の特許に接触し、自由に使えなくなったことから開発された。これは、Unisysが、LZWの特許を主張するというサブマリン特許問題を起こしたためである。

PNGはGIFの後継であるため、圧縮率を含め、あらゆる性能がGIFを上まわるように設計されている。

標準化

PNG 1.0の仕様はRFC 2083外部リンクでInformational(情報提供)扱いになっており、ISO/IEC FDIS 15948:2001として国際標準化された。

現在の最新版はPNG 1.2で、RFCにはないがISO/IEC 15948:2003として国際標準化された。

MIMEタイプ名はimage/pngであり、拡張子は.pngが使われる。

利点

GIFと比べ、次のような特徴がある。

  • 色数はフルカラーに対応 (48ビット色、約280兆色)
  • 圧縮技術の変更 (可逆圧縮のzlib)
  • 複数の透明属性(アルファチャンネル)を持てる(GIFは1色だけ)
  • ガンマ補正のパラメータを持つことができる
  • CRCによりファイルが正常か破損しているかを判断できる
  • ファイル形式にRIFFを採用

圧縮

圧縮方式としては可逆のみに対応している。これは、GIFの代替であって、JPEGファイル(JFIF)の代替ではないからである。

圧縮にはライセンスフリーのzlibが使われる。これによるライセンス料の徴収はない点が、PNGの誕生経緯における最大の特徴といえる。

色数

最大色数は1ピクセルあたり48ビット色(約280兆色)で、RGB各色65,536階調まで対応する。GIFの8ビット(256色)から大幅に拡張された。

また、1ピクセルあたり最大16ビットのグレイスケール(白黒)画像に対応する。黒から白までを65,536段階に表現できる。

多色対応のフルカラー画像ファイルフォーマットにJPEG(JFIF)があるが、PNGは画像の劣化が許されないような場合や図表などに使うことができる。

RIFF

GIFファイルは独自のファイル形式を持っていたが、PNGはRIFFチャンク形式を採用し、汎用性や拡張性も高い。

例えばMacromediaのHTML制作ソフトFireworksは、このPNGに独自のRIFFチャンクを追加したものを保存形式に使用しているほどである。もちろん、このFireworksで作ったPNGは他のソフトでは普通のPNG画像ファイルとして利用できる。

主なチャンク

よく使われるチャンクに、次のようなものがある。

  • 標準必須チャンク(Standard Critical Chunks)
    • IHDRチャンク (イメージヘッダ)
    • PLTEチャンク (パレット)
    • IDATチャンク (画像情報)
    • IENDチャンク (画像の終端)
  • 標準補助チャンク(Standard Ancillary Chunks)
    • cHRMチャンク
    • gAMAチャンク
    • iCCPチャンク
    • sBITチャンク
    • sRGBチャンク
    • bKGDチャンク
    • hISTチャンク
    • tRNSチャンク
    • pHYsチャンク
    • sPLTチャンク
    • tIMEチャンク
    • iTXtチャンク
    • tEXtチャンク
    • zTXtチャンク
  • 追加公開チャンク(Additional Public Chunks)
    • oFFsチャンク
    • pCALチャンク
    • sCALチャンク
    • gIFgチャンク
    • gIFtチャンク
    • gIFxチャンク
    • fRAcチャンク
  • 私用チャンク

標準補助チャンクは、必須チャンクに対して置かれる位置が決められているものがある。例えばtRNSチャンクは、PLTEチャンクの後で、かつIDATチャンクの前でなければならない。

対応ソフトウェア

Internet Explorerは4.0以降で対応を開始した。

Netscape Communicatorではそれに少し遅れて4.04以降でサポートされた(ただし、Windows 3.1版のNetscape Navigatorを除く)。

他にもMacMosaicやXMosaicなどでサポートされ、今では殆ど全てのWebブラウザで対応されている。

HTML等からは、GIFやJPEGと同様にimg要素で利用できる。