ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
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 0A | PNG シグネチャ (ASCII で .PNG\r\n.\n) |
| 最初のチャンク | タイプ IHDR | 画像ヘッダ (幅・高さ・ビット深度・カラータイプ) |
| 必須 | タイプ IDAT | 圧縮された画素データ (Deflate) |
| 末尾 | タイプ IEND | ファイル終端 |
| 任意 | タイプ tRNS | パレット PNG の透過情報 |
| 任意 | タイプ tEXt / iTXt | テキストメタデータ |
シグネチャの 1 バイト目を 0x89 にしているのは「7bit 通信路で文字化けすると壊れる」ことを検出するため、そして 0D 0A と 0A の改行コードを両方含めているのは「テキストモードで 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 に統一する。
関連リンク
- 画像形式 — 本カテゴリの親ページ
- ファイル拡張子とは — 拡張子全般の概論
- JPEG (.jpg / .jpeg) — 写真用途の対極にある非可逆形式
- GIF (.gif) — PNG が代替した古い形式
- WebP (.webp) — PNG を圧縮率で上回る後継候補
- AVIF (.avif) — 次世代の高圧縮形式
- 次世代フォーマットでの画像の配信 — PNG → WebP / AVIF への移行戦略
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?