10.

ICO(.ico)Windows アイコン形式の完全ガイド — favicon・マルチサイズ・SVG favicon との比較

編集
この記事の要点
  • ICO(Icon)は Windows のアイコン用画像形式で、1985 年の Windows 1.0 から使われる古参
  • favicon.ico として Web ブラウザのタブやお気に入りのアイコンに使われる
  • 1 ファイルに複数サイズ(16/32/48/64/256 px)と複数色深度(4/8/24/32bit)を束ねられる
  • Windows Vista 以降は PNG 圧縮ベースの ICO(PNG エントリ)もサポート
  • 現代の Web では SVG favicon(image/svg+xml)が推奨され、ICO はフォールバックに後退
  • カーソル用の .cur はほぼ同じ構造(ヘッダの値だけが違う)
  • IconExtractor、@favicon-bot、Real Favicon Generator などのツールで生成する

概要

ICO(Icon、アイコ/アイシーオー)は、Microsoft Windows のアイコン表示に使われる古参の画像フォーマットで、1985 年の Windows 1.0 から存在します。ファイルアイコン、ショートカット、プログラムアイコン、ウィンドウのタイトルバーなど、Windows GUI の至るところで使われており、現代でも Windows 11 までこの形式は健在です。

Web の世界では「favicon.ico」として圧倒的に有名です。1999 年に Microsoft が Internet Explorer 5 で「お気に入り」に表示する小さなアイコンとして導入し、後に W3C HTML5 仕様に取り込まれ、現在ではすべての主要ブラウザがサポートしています。サイトのルートに /favicon.ico を置くだけでブラウザが勝手に拾いに来るという、暗黙のルールが今でも残っています。

ICO 最大の特徴は、1 ファイルに複数サイズ・複数色深度のビットマップを束ねられることです。ファイルマネージャは状況に応じて最適なサイズ(16x16 / 32x32 / 48x48 / 256x256 など)を選び出すため、画質の劣化なくスケーリングできます。

内部構造とマジックナンバー

ICO は ICONDIR ヘッダの後に、ICONDIRENTRY エントリが続き、その後に各画像データが連結される単純な構造です。

オフセット値(HEX)意味
0x00–0x0100 00予約(0 固定)
0x02–0x0301 00タイプ:1 = ICO(2 = CUR / カーソル)
0x04–0x05NN NN含まれる画像数(16bit LE)
0x06–ICONDIRENTRY × N各 16 バイトのエントリ(幅・高さ・色数・サイズ・オフセット)
各画像BMP(DIB)または PNGVista 以降は PNG 圧縮も可
MIMEimage/vnd.microsoft.icon / image/x-icon

各エントリで「幅・高さ = 0」は 256px を意味する仕様(8bit に収まらないため)です。256px ICO の中身は事実上 PNG 圧縮を採用します。

主な用途

  • favicon.ico:Web ブラウザのタブ、お気に入り、履歴、ブックマークのアイコン
  • Windows アプリのアイコン:.exe に埋め込まれたリソース
  • ファイル・フォルダのカスタムアイコン:desktop.ini で指定
  • ショートカット(.lnk)のアイコン
  • カーソル(.cur):構造はほぼ同じ、ホットスポット情報が追加
  • インストーラーのアイコン:MSI、InnoSetup、NSIS など
  • PWA のフォールバックアイコン:manifest.json の image/png が主流になったが、互換性のため残す

関連形式との比較

項目ICOSVG faviconPNG faviconICNS(macOS)
主用途Windows / 旧来 faviconモダン faviconiOS/Android 統一macOS アプリ
方式マルチサイズビットマップベクターラスターマルチサイズビットマップ
無限拡大×(含むサイズの範囲)××
マルチサイズ○(1 ファイル)不要×(複数ファイル)
ダークモード×○(prefers-color-scheme)××
ブラウザ対応すべてモダンブラウザすべて非対応
ファイルサイズ中(数 KB~数十 KB)小(数百 B〜数 KB)

編集・閲覧ツール

  • GIMP:標準で ICO の読み書きに対応、複数サイズをレイヤーとして扱える
  • Greenfish Icon Editor Pro:Windows 向けの定番フリー ICO 編集ツール
  • IcoFX:商用 ICO 専用エディタ、Vista 以降の PNG エントリにも対応
  • ImageMagickmagick logo.png -define icon:auto-resize=256,128,64,48,32,16 favicon.ico で一発生成
  • Real Favicon Generator:Web GUI で 1 枚の画像から ICO / PNG / SVG / Apple Touch Icon を一括生成
  • favicon.io:絵文字・テキスト・画像から favicon を生成
  • Resource Hacker:exe / dll に埋め込まれた ICO を抽出・差し替え

注意点・落とし穴

  • SVG favicon を優先すべき場面が多い:モダンブラウザのみが対象なら <link rel="icon" type="image/svg+xml" href="/favicon.svg"> がベスト。1 ファイルで Retina 対応、ダークモード切り替えも可能
  • 含めるサイズの最低限:16x16 / 32x32 / 48x48 を含めるのが基本。256x256(PNG エントリ)も入れておくと Windows のタイル表示で綺麗
  • ルートに置く慣習:HTML で <link rel="icon"> 指定しなくても、ブラウザは /favicon.ico を自動取得する。明示的に <link> を書く方が制御しやすい
  • キャッシュが強固:favicon は何日もキャッシュされるため、更新後すぐ反映されないことがある。ファイル名を変えるか、クエリパラメータでキャッシュバスト
  • 16x16 のデザインは別物:通常ロゴを縮小しただけだと潰れる。16px 用にあえてシンプルな形に再デザインするのがプロの定石
  • iOS / Android はそもそも ICO を見ない:iOS は apple-touch-icon.png(180x180)、Android は manifest.json の PNG を使う。マルチプラットフォーム対応では PNG 一式も別途用意
  • セキュリティ:自前で配信していない favicon.ico を放置すると、404 ログが膨らむ。空でもいいので置いておく

典型的な favicon の宣言例:

<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png">
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. JPEG(.jpg / .jpeg)
  2. PNG(.png)
  3. GIF(.gif)
  4. SVG(.svg)
  5. WebP(.webp)
  6. AVIF(.avif)
  7. HEIC(.heic / .heif)
  8. BMP(.bmp)
  9. TIFF(.tiff / .tif)
  10. ICO(.ico)

最近更新/作成されたページ