Windowsアイコン (.ico)
Microsoft 標準Windows Icon Resource(ICO)はMicrosoftのマルチ解像度アイコンコンテナー形式で、ウェブサイトのファビコンやWindowsアイコンによく使われます。
ICO を PNG に変換
無料のブラウザ内 ICO から PNG へのコンバーター。お使いのデバイスでファイルを即座に変換します。
調査とメタデータ
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してICOファイルを識別します:
バイトレベルのヘッダーシグネチャ (マジックバイト)
オペレーティングシステムやファイル解析ツールは、先頭のバイナリ列を検査してICOファイルを識別します:
16進数シグネチャ(オフセット0):
00 00 01 00ASCII表現: ....
標準化: Microsoft Windowsアイコンリソース仕様
技術仕様
| コンテナアーキテクチャ | 6バイトのICONDIRヘッダーには、2バイトの予約フィールド(0)、2バイトの種別フィールド(アイコンの場合は1)、2バイトの画像数フィールドが含まれます。これらは個別のフィールドであり、固定シグネチャではありません。続いて16バイトのICONDIRENTRYレコードとDIBまたはPNGの画像データが続きます。 |
| 圧縮 | 非圧縮DIB、またはPNG圧縮ストリーム(256x256アイコン用) |
| バイトエンディアン | リトルエンディアン(Intel x86) |
| 色空間 | デバイスRGB, sRGB |
| チャンネルと構造 | 1ビットモノクロ、4/8ビットパレット、24ビットRGB、またはアルファ付き32ビットRGBA |
| 最大寸法 | 256 x 256ピクセル(複数解像度を格納可能:16x16、32x32、48x48、64x64、128x128、256x256) |
| 透過性 | XOR/AND二値透明マスク、または完全な8ビット滑らかアルファチャンネル |
| ストリーミングとプログレッシブ | アイコンディレクトリコンテナのため、ストリーミング不可 |
技術比較表:ICOと競合製品
| 技術属性 | ICO (現在) | PNG | SVG | CUR |
|---|---|---|---|---|
| マルチ解像度ストレージ | 1 つのファイルに複数のサイズが埋め込まれている | 単一の画像サイズのみ | 無限のベクターのスケーリング | 複数のカーソルサイズ |
| ファビコンのサポート | ブラウザーで広くサポートされていますが、詳細はバージョンによって異なります | 最新ブラウザでサポート | 最新ブラウザでサポート | なし (マウスポインタのみ) |
| リソースタイプ ID | 0x0001 (アイコン) | 標準画像ファイル | W3C XML ベクター | 0x0002 (ホットスポット付きカーソル) |
| 最大寸法 | 256 x 256 ピクセル | 実質的に無制限 | 無限 (ベクター) | 256 x 256 ピクセル |
一般的な破損モードと16進数リカバリガイド
ブラウザタブにカスタムのウェブサイトアイコンの代わりに空白のデフォルトドキュメントページが表示されます。
根本原因: ファビコンに標準の 16x16 または 32x32 の解像度エントリが欠落しているか、破損した DIB ヘッダーが含まれていることが原因です。
復旧: File2File.app ファビコンジェネレーターを使用して、マルチ解像度 ICO ファイルを再生成してください。
セキュリティ分析とパーサー攻撃ベクトル
ICO ファイルには、バッファオーバーフローの脆弱性を防止するために検証する必要があるデータオフセットを指定するディレクトリテーブルが含まれています。
既知の攻撃ベクター
- 画像ディレクトリ数の整数オーバーフローにより、小さなメモリ割り当てとヒープバッファオーバーフローを引き起こす。
- マップされたファイルメモリの外側への読み取りを指示する、破損した画像バイトオフセットポインタ。
- 256x256 アイコンエントリ内に埋め込まれた PNG 展開ボム。
防御的ベストプラクティス: すべてのディレクトリのエントリオフセットが、ICOファイルの物理的な境界内に厳格に収まるようにします。
歴史的背景とマイルストーン
主なメリット
- 1つのファイルに複数の画像解像度(例: 16x16、32x32、48x48、256x256)を格納し、あらゆる DPI スケールで鮮明に表示できます。
- 多くのブラウザーやデスクトップアプリでサポートされていますが、動作はプラットフォームやバージョンによって異なります。
- 古典的なコンテナ内で最新の 256x256 高解像度 PNG 圧縮をサポートします。
技術的な制限とデメリット
- 最新のウェブブラウザは、レガシーなマルチリソース ICO コンテナよりも、標準の SVG および PNG ファビコンを好みます。
- 古いソフトウェアにおけるレガシーな 1-bit XOR 透明マスクは、ギザギザのピクセル化されたエッジを生み出します。
- 固定された解像度の制限 (アイコンフレームあたり最大 256x256 ピクセル)。
興味深い技術トリビア
- 初期の Windows バージョンでは、アイコンは 16 色の 32x32 ピクセルに制限されていました。
- Internet Explorer 5 がファビコンを導入した際、ウェブサイトはサーバーログ内の「/favicon.ico」のリクエスト数を数えることで、何人のユーザーがページをブックマークしたかを把握していました。
- ICO ファイル内の 256x256 アイコンエントリには、8 バイトの PNG シグネチャで始まる完全で有効な PNG ファイルがそのまま含まれています。
よくある技術的な質問
なぜウェブサイトにfavicon.icoが必要なのですか?
HTMLでPNGファビコンを指定している場合でも、ウェブブラウザや検索エンジンのクローラーは、タブやブックマークのアイコンを表示するためにデフォルトで「/favicon.ico」を要求するためです。
ICOファイルにはどのような解像度を含めるべきですか?
プロ仕様のICOファイルには、すべてのモニターのスケールやタスクバーでシャープに表示させるために、16x16、32x32、48x48、256x256ピクセルのバージョンを含める必要があります。
PNGをICOファイルに変換するにはどうすればよいですか?
PNG画像をFile2File.appにアップロードすると、最適化されたマルチ解像度のICOファイルをウェブブラウザ内で即座に生成できます。