Portable Network Graphics

画像ファイルフォーマット

PNG[1]Deflate
Portable Network Graphics

上は、8ビット透明チャネルを含むPNG画像。下は、同じ画像を市松模様の背景の上に重ねたもの。市松模様は透明であることを示すためにグラフィックエディタなどでよく用いられる。

拡張子.png
MIMEタイプimage/png
タイプコード
  • PNGf
  • PNG
UTIpublic.png
マジック
ナンバー
89 'PNG' 0d 0a 1a 0a
開発者W3C
種別可逆圧縮ビットマップ画像
包含物画像テキスト
拡張APNGJNGMNG
国際標準ISO 15948、IETF RFC 2083

1996年に登場し、可逆圧縮の画像フォーマットとして既に普及していたGIFの後継フォーマットとなることを目指し、ネットワーク経由での使用を想定した機能や透過処理など、多くの機能をサポートした。ウェブブラウザグラフィックソフトでのサポートも進み、インターネットを中心に普及した。

「PNG」は「ピング」や「ピン」と多く読まれる。

概説

編集

162448RGB8) [2][3][4]816[5][1]

GIFPNG[2]PNG1使 MNG  APNG PNG (PNS) [6]

歴史

編集

PNG1994GIF使LZWGIF使使[7]PNGPNG is notgif[8][9][10]256GIF2561999使[11]PNG

1996101 - PNG Version 1.0RFC 2083[12]W3C[12]

19981231 - Version 1.1[12]

1999811 - Version 1.2

2002820 -  JIS X4242 (PNG)[13]

20031110 -  (ISO/IEC 15948:2003)  1.2 

200433 -  (ISO/IEC 15948:2004) [spec 1]

技術詳細

編集

詳しくは、仕様書[spec 1][spec 2][spec 3]を参照。

ファイルヘッダ

編集

PNG ファイルはヘッダに 8 バイトのシグネチャ(マジックナンバー)を持つ[14]。16進数の値は「89 50 4E 47 0D 0A 1A 0A」である[14](制御文字で表すと HTJ P N G CR LF SUB LF)。各値の意味は次の通り。

ファイル先頭からのバイト位置 説明
1バイト目 89 8ビットデータをサポートしない転送システムを検知するためのハイビット値[14]。また、テキストファイルが誤ってPNGと認識されるのを防ぐ。
2バイト目 50 アスキーコードで PNG を表す[14]。テキストエディタで開いた場合などに、フォーマットをわかりやすくするため。
3バイト目 4E
4バイト目 47
5バイト目 0D MS-DOSスタイルの改行 (CR LF)[14]。MS-DOSからUNIXへの行末データ変換が行われていないかを検知する[14]
6バイト目 0A
7バイト目 1A MS-DOSで TYPE コマンドを使ってファイル表示をさせた場合、SUB (EOF) として表示を停止させるバイト[14]
8バイト目 0A UNIXスタイルの行末 (LF)[14]。UNIXからMS-DOSへの行末変換が行われていないかを検知する[14]

ファイルヘッダの後にはIHDRチャンクが必ず来て[15]、IHDRチャンクのサイズは13バイト固定なため、シグネチャの次の8バイトも00 00 00 0D 49 48 44 52で固定されている。

チャンク

編集

PNG



(一)4

(二)4

(三)

(四)CRC-324

[16]

4[16]

1[16][16]

2[16][16]

3[16][16]

4[16]使

必須チャンク

編集

PNG[16]

IHDR - 13
4

4

1

1

1

1

1

PLTE - 

IDAT - zlibIDATPNG

IEND - 

PLTE3使26 0 4

補助チャンク

編集



acTL - PNG

bKGD - Internet Explorer 6使

cHRM - 

eXIf - Exif

fcTL - PNG

fdAT - PNG

gAMA - 

hIST - 使

iCCP - ICC

iTXt - UTF-8IETF

pHYs - 

sBIT - 

sPLT - 使

sRGB - sRGB使

tEXt - ISO 8859-1

tIME - 

tRNS - 使

zTXt - tEXt

フィルタ処理

編集

PNGzlib[17])


100,101,102,103,104,105

Deflate
100,1,1,1,1,1



PNG5

Sub

[17]

Up

[17]

Average

[17]

Paeth

3Paeth[17]

None

[17]

使使

圧縮

編集

Deflate (RFC 1951) 使zlib (RFC 1950) [18]DeflatePNG IDAT 

PNGDeflateIHDRiTXt使Compression methodVer1.2Compression method使Deflate

開発者向けのツール

編集

PNGを処理するための開発者向けライブラリとしてlibpngがある。これはPNG公式のライブラリであり、最も広く利用されている。C言語で開発されており、多くのプラットフォームで動作する。ライセンスはGPLよりも制限が緩やかである。

他のフォーマットとの比較

編集
 
POV-Rayで作られたPNGの画像

GIF との比較

編集

GIF GIF

PNGGIF[2][19]

GIF1PNG[5]

PNG256GIF

GIFPNG[2]PNGMNG/APNG

GIFGIF使

GIFPNG PNG

GIF

JPEGとの比較

編集
 
JPEGとPNGとの比較を示した画像。:JPEGでは均一な背景にノイズが出る

JPEGPNGJPEGJPEG5 - 10

PNGPNGJPEG

JPEGJPEG

TIFFとの比較

編集

PNGとTIFFは、画像を可逆圧縮または無圧縮により劣化なしで画像の保存が可能という点は共通している。

同じ画像を保存する際、ファイルサイズでは一般的にPNGに利点があるとされる[要出典]

ブラウザの対応

編集

GIFPNG

WebPNG

GIFPNGAPNG2010

GIFPhotoshopPaintShop Pro使

2000Internet Explorer6PNG2006117PhotoshopPNGgAMA

PNGGIF1Internet Explorer 5IE5.5PNGActiveX (AlphaImageLoader) 使HTMLIE

LZW2003620PNGLZWGIFGIFPNGGIF

ファイルサイズ

編集

PNGGIFPNGGIF

GIF256256PNGGIFGIFGIF256PNGGIFPNG256GIF

PNGGIFPNGPNG

PNGPNGPNG OptiPNGPNGOUTpngrewritePngcrushWindowsBlastPNG

PNGJPEGJPEGJPEGJPEGPNGJPEGPNG

出典

編集


(一)^ abGreg Roelofs 2003, Chapter 1. An Introduction to PNG.

(二)^ abcdGreg Roelofs 2003, 1.2. What Is PNG Good For?.

(三)^ Greg Roelofs 2003, 1.2.4. Compression.

(四)^ Greg Roelofs 2003, 8.5. PNG Image Types.

(五)^ abGreg Roelofs 2003, 1.2.1. Alpha Channels.

(六)^ nvidia.com  3D . 201289

(七)^ Greg Roelofs 2003, Chapter 7. History of the Portable Network Graphics Format.

(八)^ Greg Roelofs (2012529). History of PNG. Libpng.org. 201289

(九)^ GIF,JPEG OR PNG?. 201288

(十)^ Greg Roelofs 2003, 7.1. Anatomy of an Internet Working Group.

(11)^ GNUGIF. 20211228

(12)^ abcGreg Roelofs 2003, Table 7-1.

(13)^ 調 X4242 調

(14)^ abcdefghiGreg Roelofs 2003, 8.2. PNG Signature.

(15)^ Greg Roelofs 2003, 8.4. The Simplest PNG.

(16)^ abcdefghijGreg Roelofs 2003, 8.1. Chunks.

(17)^ abcdefGreg Roelofs 2003, 9.1. Filtering.

(18)^ Greg Roelofs 2003, 9.2. The Deflate Compression Algorithm.

(19)^ Greg Roelofs 2003, 9.3. Real-World Comparisons.

仕様書

編集


(一)^ abISO/IEC 15948:2004. ISO. (2004). https://www.iso.org/standard/29581.html 

(二)^ PNG 1.2  . 20056242005624

(三)^ Portable Network Graphics (PNG) Specification and Extensions (). 201289

参考文献

編集

関連項目

編集

外部リンク

編集