Windows アプリアイコンの作成方法
Windows は、単一の .ico ファイルから最大 7 つのアイコン サイズを要求します。このガイドでは、サイズ マトリクス、コンテナ内の PNG 圧縮、ツールの選択、実際のパッケージングの例、FAQ、肥大化または不鮮明な Windows アイコンの修正について説明します。
Windows がアイコンにこだわる理由
Windows UI サーフェスは、16×16 の通知領域グリフから高 DPI タスクバー上の 256×256 ジャンボ ピンまで拡張します。その範囲にまたがる 1 つのビットマップは柔らかく、またはピクセル化して見えます。
.ico コンテナが存在するため、1 つのファイルに複数の事前レンダリングされたフレームが含まれます。 Shell32 は、小さな画像をアップスケールするのではなく、最も近いサイズを選択します。
Web favicon とデスクトップ アプリのアイコンは、同じコンテナ形式を共有します。 favicon.ico の出荷と Win32 または Electron 実行可能ファイルのパッケージ化の間でスキルを移転します。
Use our favicon generator, PNG to ICO converter, SVG to ICO converter, and live favicon tester to build and verify your icon set, and read the companion guide for a condensed walkthrough.
Windows アイコン サイズ マトリックス
Microsoft は、最新のアプリの場合、1 つの .ico に 16、24、32、48、64、128、および 256 ピクセルの正方形を埋め込むことを推奨しています。
16 と 24 は小さなシェル リストをカバーしています。 32 と 48 は、ファイル エクスプローラーの標準および中アイコン ビューをカバーしています。 64 以降では、高 DPI サムネイルとスタート メニュー タイルがカバーされます。
256 を省略しても必ずしも何かが壊れるわけではありませんが、256 を省略すると、4K モニター上のピン留めされたタイルが著しく柔らかく見えます。
256×256 では圧縮が重要
従来のツールは、256×256 を非圧縮 32 ビット BMP として .ico 内に保存します。その 1 つのフレームが 256 KB を超え、インストーラーが肥大化する可能性があります。
最新のエンコーダーは、大きなフレームを PNG 圧縮 BLOB として ICO コンテナー内に保存します。視覚的な品質は変わりません。バイトサイズは 5 ~ 10 分の 1 に減少します。
最終的な .ico サイズを必ず検査してください。 PNG 圧縮のフラット ロゴの場合、50KB 未満が一般的です。 200KB を超えるシグナル BMP は肥大化します。
これを適切に行うツール
FetchFavicon は 512×512 マスターを受け入れ、PNG 圧縮された高サイズ フレームを含む Web 対応 .ico を出力します。これは、Electron、Tauri、およびクラシック Win32 リソースの埋め込みに適しています。
Visual Studio のリソース エディターは、ネイティブ アプリをコンパイルするときに ICO 構造を検証します。 MSI を出荷する前にそこでテストしてください。
単一の PNG の名前を .ico に変更することは避けてください。 Windows Explorer はプレビューを表示する可能性がありますが、シェルのスケーリングは影響を受けます。
包装例
Electron アプリ: favicon.ico をビルド リソースに配置します。 electron-builder.yml 内の win.icon を同じマルチサイズ ファイルに設定します。
Inno Setup インストーラー: SetupIconFile=assets\app.ico は、少なくとも 32 フレームと 48 フレームを含む .ico を指定する必要があります。
ポータブル ZIP 配布: ユーザーは .exe をタスクバーに固定します。 Windows は、同じ .ico マスターからコンパイルした PE ヘッダーから埋め込みアイコン リソースを読み取ります。
企業 MSI: アイコンを埋め込んだ後にインストーラーに署名します。署名後の .ico を変更すると、署名が無効になります。
よくある質問
.ico は Web とデスクトップで同じですか?同じコンテナ仕様。デスクトップ アプリは、HTTP 経由で提供するのではなく、PE リソースとしてそれを埋め込みます。
Windows バージョンごとに個別のアイコンが必要ですか?最新のマルチサイズ .ico は、Windows 10 および 11 をカバーします。
UWP の .ico と .png はどうですか? UWP はパッケージ マニフェストで PNG アセットを使用します。古典的な Win32 は依然として .ico を必要とします。
既存の .ico からサイズを抽出できますか?はい、監査用に IcoFX または ImageMagick を変換します。
トラブルシューティング
タスクバーのアイコンがぼやけています: 32 または 48 フレームがありません。 Windows は代わりに 16 をアップスケールしました。
インストーラー アイコンは間違っていますが、実行アイコンは正しいです: Inno Setup IconFile は依然として古いパスを指しています。インストーラーを再構築します。
アイコンを追加した後の巨大な git コミット: BMP スタイルの .ico をコミットしました。 PNG 圧縮で再エクスポートします。
アイコンは開発マシンにのみ表示されます: リソースがリリース ビルド構成に埋め込まれていません - .rc ファイルと CI アーティファクトを確認してください。
実行可能ファイルへのアイコンの埋め込み
Win32 ネイティブ アプリは、PE ファイルにコンパイルされた .rc リソース スクリプトで .ico を参照します。リソース ID 1 は、デフォルトのアプリケーション アイコンです。
Electron パッケージは、electron-builder 設定から win.icon を読み取ります。同じマルチサイズ .ico が最終的な .exe に抽出されます。
Windows 上の Tauri は、他のプラットフォームの PNG と並んで、tauri.conf.json のバンドル.icon 配列で .ico を期待します。
コード署名ではアイコンのピクセルは検証されませんが、署名後にリソースを変更すると署名が壊れます。Authenticode 署名の前にアイコンを完成させてください。
開発ツールがインストールされていないクリーンな VM 上で、コンパイルされた .exe をテストします。エクスプローラーは、ソース リポジトリ パスではなく、埋め込みリソースを読み取ります。
Windows シェルが各サイズをどのように使用するか
エクスプローラーの小さなアイコン ビューでは、16 ピクセル フレームと 32 ピクセル フレームが優先されます。特大アイコンが存在する場合は 256 を使用します。
タスクバーの固定では中サイズのフレームが要求されます。 32 が不足している場合は、16 からのソフト アップスケールが生成されます。
Windows 11 のスタート メニュー タイルは、256×256 が埋め込まれている場合、高解像度のアセットでアニメーション化されます。
デスクトップ上のショートカット .lnk ファイルはアイコンを個別にキャッシュする可能性があります。QA 中に基礎となる .ico を更新した後、ショートカットを削除して再作成します。
Windows QA マトリックス
Windows 11 で 100% および 200% の表示スケーリングでテストします。各スケールは、同じ ICO から異なるフレームを選択します。
QA中にシェルキャッシュをフラッシュするために、タスクバーに固定し、固定を解除し、アイコンの更新後に再度固定します。
更新前に作成されたショートカットの [プロパティ] → [アイコンを変更] を確認します。これらはキャッシュされたインデックスを参照している可能性があります。
エクスプローラーのサムネイルとタスクバー アイコンを比較します。不一致は中サイズのフレームが欠落していることを示します。
インストーラーのブランドの調整
ユーザーがインストール後にピンを留めたときにブランドの継続性を保つために、MSI および EXE アイコンは Web サイト favicon と一致する必要があります。
アンインストーラーのダイアログは同じアイコン リソースを使用します。ユーザーはインストーラーとアプリの不一致に気づきます。
Microsoft Store パッケージのストア掲載情報では、別の PNG 要件が使用されます。デスクトップ ICO は引き続き Win32 サイドロードに関連します。
リポジトリ内に 1 つのマスター ICO を保持します。 CI ビルドは、ドリフトを避けるために、それをインストーラー構成と Web public/ にコピーします。
Windows SmartScreen はアイコンの美しさを判断しませんが、ユーザーはインストール プロンプトを確認するときに一致するアイコンを信頼します。
クロスプラットフォームのパッケージングノート
macOS アプリには別途 .icns が必要です。 Windows ICO は、ユニバーサル Electron ビルドではこれらを置き換えません。
Linux デスクトップ エントリは、多くの場合、512×512 で PNG を参照します。 ICO と同じマスターから PNG を生成します。
モバイル ストアのアイコンは、さらに別のエクスポート セットです。Web favicon ツールは必要ですが、アプリ ストアには十分ではありません。
統合リリース パイプラインでは、Windows ICO が忘れられることがないように、すべてのアイコン ターゲットを 1 つのチェックリストにリストする必要があります。
アイコン リソースが変更されたときにリリース ノートにタグを付けると、更新後にショートカットが異なって見える理由をサポートが回答できるようになります。
最終インストーラー バイナリに署名する前に、Resource Hacker または同等のものを使用して ICO 埋め込みリソースを検証します。
QA スクリーンショット中に Windows が選択した ICO フレームを文書化します。ぼやけたタスクバー レポートをデバッグするときに役立ちます。
インストーラー YAML の ICO パスを、ファイル内で予期されるフレーム リストでコメント化したままにしておきます。