Portable Network Graphics
![]() ![]() | |
.png | |
MIMEタイプ | image/png |
タイプコード |
|
UTI | public.png |
マジック ナンバー | 89 50 4e 47 0d 0a 1a 0a (16\x89PNG\r\n\x1a\n ( |
W3C | |
APNG、JNG、MNG | |
ISO 15948、IETF RFC 2083 |
[1])はコンピュータでビットマップ
1996
「PNG」は「ピング」や「ピン」と
概説
[GIFと
歴史
[PNGが
- 1996
年 10月1日 - PNG Version 1.0の仕様 リリース。後 にRFC 2083として承認 [12]。同日 、W3Cによる勧告 [12]。 - 1998
年 12月31日 - Version 1.1リリース[12]。小規模 な変更 と三 種類 の新 しいチャンクを追加 。 - 1999
年 8月 11日 - Version 1.2リリース。一 種類 の追加 チャンク。 - 2002
年 8月 20日 -日本 において日本工業規格 JIS X4242 『コンピュータグラフィクス及 び画像 処理 -ネットワーク用 画像 形式 (PNG)』が制定 される[13]。 - 2003
年 11月10日 -国際 標準 化 (ISO/IEC 15948:2003) 。このバージョンは 1.2 とわずかな差異 あり。新規 追加 チャンクはなし。 - 2004
年 3月3日 -国際 標準 化 (ISO/IEC 15948:2004) [spec 1]
技術 詳細
[ファイルヘッダ
[PNG ファイルはヘッダに 8 バイトのシグネチャ(マジックナンバー)をHTJ
P
N
G
CR
LF
SUB
LF
)。
ファイル |
||
---|---|---|
1バイト |
89 | 8ビットデータをサポートしない |
2バイト |
50 | アスキーコードで P 、N 、G を |
3バイト |
4E | |
4バイト |
47 | |
5バイト |
0D | MS-DOSスタイルのCR LF )[14]。MS-DOSからUNIXへの |
6バイト |
0A | |
7バイト |
1A | MS-DOSで TYPE コマンドをSUB (EOF) として |
8バイト |
0A | UNIXスタイルのLF )[14]。UNIXからMS-DOSへの |
ファイルヘッダの
チャンク
[ファイルヘッダに
チャンクの
の
チャンクの
- 1
文字 目 が大文字 のときは、必須 チャンクに分類 される[16]。必須 チャンクには、その画像 ファイルを読 み込 むために必要 な情報 が含 まれ、デコーダが解析 不可能 な必須 チャンクに遭遇 した場合 、エラーとなる[16]。 - 2
文字 目 の大文字 小文字 は、そのチャンクがパブリックかプライベートかを示 す[16]。大文字 がパブリック[16]。パブリックチャンクはその仕様 が公開 、定義 されたもので、公開 チャンクともいう。 - 3
文字 目 は将来 的 な拡張 のためにリザーブされている[16]。現在 は常 に大文字 にしなければいけない[16]。 - 4
文字 目 の大小 は、そのチャンクがそのままコピーできるかどうかを示 す[16]。小文字 の場合 、ファイルへの変更 内容 に関 わらず、そのチャンクをコピーして継続 的 に使用 できる。大文字 の場合 、他 の必須 チャンクへの変更 の影響 を受 けることを表 す。
必須 チャンク
[PNGファイルの
- IHDR -
最 も先頭 に配置 されるチャンクで、以下 の順番 で13バイトの情報 が含 まれる。 - PLTE - カラーパレット
定義 。 - IDAT - zlibにより
圧縮 されたイメージデータ。複数 のIDATチャンクに分割 することもできる。この場合 ファイルサイズは若干 増 えるが、PNGをストリームとして生成 することができるようになる。 - IEND - イメージの
終端 を示 す。
PLTEチャンクはカラータイプ 3 (インデックスカラー)を
補助 チャンク
[イメージについての
- acTL - アニメーテッドPNGである
事 を示 し、総 フレーム数 やループ回数 を保持 する。 - bKGD - デフォルトの
背景 色 を指定 する。これは、単独 のイメージビューアで表示 するときなど、背景 色 が特 に定 まらない場合 を想定 している。ただし、Internet Explorer 6以前 はアルファ値 による透過 表示 をサポートせず、この値 を背景 色 として使用 する。 - cHRM - ホワイトバランスを
指定 する。 - eXIf - Exifメタデータを
保持 する。 - fcTL - アニメーテッドPNGのフレーム
制御 情報 を保持 する。 - fdAT - アニメーテッドPNGのフレーム
画像 データを保持 する。 - gAMA - ガンマ
補正 値 を指定 する。 - hIST - ヒストグラム、またはイメージ
内 で使用 されている各 色 の総量 を保持 する。 - iCCP - ICCカラープロファイルを
保持 する。 - iTXt - UTF-8フォーマットのテキストを
保持 する。圧縮 ・非 圧縮 、IETF言語 タグを伴 うことができる。 - pHYs - ピクセルの
物理 サイズ、またはイメージのアスペクト比 を指定 する。 - sBIT -
元 データの有効 なビット数 を示 す。 - sPLT - イメージが
使用 する色 を全 てカバーできない時 に、代替 となるパレットを提示 する。 - sRGB -
標準 的 なsRGBの色 空間 が使 われていることを示 す。 - tEXt - ISO 8859-1
形式 のテキストを保持 する。キーワードと対 になるチャンクを複数 持 つことができる。テキストの圧縮 は行 われない。 - tIME - イメージの
最終 更新 日時 を保持 する。 - tRNS -
透過 色 情報 を保持 する。ピクセル単位 のアルファ値 指定 が必要 ない場合 に使用 する。インデックスカラーのイメージについてはインデックスに結 びつけるアルファ値 、トゥルーカラーやグレースケールのイメージについては、完全 に透過 とみなす色 を指定 する。 - zTXt - tEXtチャンクと
同 じ制限 の圧縮 テキスト。
フィルタ処理
[PNGのイメージデータはzlibにより
100,101,102,103,104,105
このデータには
100,1,1,1,1,1
この
PNGでは5
- Sub
左 隣 のバイトとの差 をとる[17](上記 )。- Up
真上 のバイトとの差 をとる[17]。- Average
左 隣 と真上 のバイトの平均 値 との差 をとる[17]。- Paeth
左 隣 、真上 、左上 の3つのバイトからPaeth値 を計算 し、その値 との差 をとる[17]。- None
何 もしない[17]。
このフィルタは
圧縮
[なおPNGはDeflate
開発 者 向 けのツール
[PNGを
他 のフォーマットとの比較
[
GIF との比較
[GIF の
- ほとんどの
画像 でPNGはGIFより圧縮 率 が高 い[2][19]。 - GIFは1
色 透過 だが、PNGはアルファチャンネルを持 ち半 透明 の表現 が可能 [5]。 - PNGはフルカラーが
可能 なため256色 のGIFより精細 な色 表現 が可能 。 - GIFはアニメーションをサポートしているが、PNGはサポートしていない[2](アニメーションにはPNGの
発展 フォーマットであるMNG/APNG形式 を用 いる)。 - GIFと
比較 すると圧縮 ・展開 に多少 時間 が掛 かる(ただし前述 の通 り容量 はGIFより小 さいため、転送 時間 の短縮 を加味 すれば劣 点 とはならない。サーバ側 のプログラムが動的 に画像 を生成 するような使用 法 では注意 を要 する)。 - インターレースGIFとインターレースPNG を
比較 すると、インターレースPNGの方 が圧縮 率 が低 い。 - インターレース
形式 のアルゴリズムが異 なり、GIFよりも早 い段階 で全体 像 が見 える。
JPEGとの比較
[
JPEGは、
PNGは、テキストや
JPEGは、
TIFFとの比較
[PNGとTIFFは、
ブラウザの対応
[当時 のWebブラウザでPNGに正 しく対応 していないものがあった。広告 (バナー)には当時 、GIFアニメがよく用 いられたが、PNGの仕様 そのものにはアニメーション機能 が含 まれていないため、代替 することができなかった。多 くのブラウザでAPNGに対応 したのは2010年代 以降 のことである。特許 ライセンス料 はGIF画像 を読 み書 きできるソフトウェアの製作 者 が支払 うものであり、ソフトウェア技術 者 やフリーソフト利用 者 などの間 では話題 になったものの、PhotoshopやPaintShop Proなど市販 のソフトウェアを使用 して画像 を制作 ・利用 する利用 者 にとっては関係 が薄 かった。
PNGはGIFと
ユニシスの
ファイルサイズ
[GIFは256
インターレースPNGはインターレースGIFに
ソフトウェアによっては、
PNGはJPEGに
出典
[- ^ a b Greg Roelofs 2003, Chapter 1. An Introduction to PNG.
- ^ a b c d Greg Roelofs 2003, 1.2. What Is PNG Good For?.
- ^ Greg Roelofs 2003, 1.2.4. Compression.
- ^ Greg Roelofs 2003, 8.5. PNG Image Types.
- ^ a b Greg Roelofs 2003, 1.2.1. Alpha Channels.
- ^ “nvidia.com
製品 情報 3D画像 ”. 2012年 8月 9日 閲覧 。 - ^ Greg Roelofs 2003, Chapter 7. History of the Portable Network Graphics Format.
- ^ Greg Roelofs (2012
年 5月 29日 ). “History of PNG”. Libpng.org. 2012年 8月 9日 閲覧 。 - ^ “GIF,JPEG OR PNG?”. 2012
年 8月 8日 閲覧 。 - ^ Greg Roelofs 2003, 7.1. Anatomy of an Internet Working Group.
- ^ “GNUのウェブページにGIFファイルが
一 つも無 い理由 ”. 2021年 12月28日 閲覧 。 - ^ a b c Greg Roelofs 2003, Table 7-1.
- ^ 『
日本 産業 標準 調査 会 :廃止 規格 検索 X4242日本 工業 標準 調査 会 。 - ^ a b c d e f g h i Greg Roelofs 2003, 8.2. PNG Signature.
- ^ Greg Roelofs 2003, 8.4. The Simplest PNG.
- ^ a b c d e f g h i j Greg Roelofs 2003, 8.1. Chunks.
- ^ a b c d e f Greg Roelofs 2003, 9.1. Filtering.
- ^ Greg Roelofs 2003, 9.2. The Deflate Compression Algorithm.
- ^ Greg Roelofs 2003, 9.3. Real-World Comparisons.
仕様 書
[- ^ a b ISO/IEC 15948:2004. ISO. (2004)
- ^ “PNG 1.2
仕様 書 日本語 訳 ”. 2005年 6月 24日 時点 のオリジナルよりアーカイブ。2005年 6月 24日 閲覧 。 - ^ “Portable Network Graphics (PNG) Specification and Extensions” (
英語 ). 2012年 8月 9日 閲覧 。
参考 文献
[- Greg Roelofs (2003) (
英語 ). PNG: The Definitive Guide (2nd ed.). O'Reilly & Associates 2021年 12月28日 閲覧 。