Skip to content

PNG を ICO に変換(ICO → PNG も対応)

PNG・JPG・SVG・WebP を本物のマルチサイズ .ico に変換します。16・32・48 px を 1 ファイルにまとめ、アルファチャンネルは完全に保持。内部を PNG で持つか非圧縮 BMP で持つかを選べ、両方のファイルサイズを並べて表示します。.ico を開き直して各サイズを PNG で取り出すこともできます。

トラッキングなし ブラウザで動作 無料
変換はすべてお使いのブラウザ内で実行されます。画像がアップロードされることはありません。

画像をここにドロップするか、クリックして選択

PNG、JPG、SVG、WebP、GIF、BMP · 最大 10 MB

詰めるサイズ

16・32・48 px は 1995 年のマイクロソフトのアイコンガイドラインが求めた組み合わせで、実際のファビコンで最も多く見かける組み合わせです。512 は提供していません。ディレクトリは辺の長さを 1 バイトで保持するため、有効な表現が存在しないからです。

どちらも .ico の内部で有効です。PNG は Vista 以降の Windows と現行のすべてのブラウザが読めます。一方、20 サイトを抽出して見つかった本物の ICO ファイル 14 個のうち 13 個は非圧縮 BMP でした。ImageMagick が既定でそちらに変換するためです。

.ico ファイルの中身(16 + 32 + 48 px の例)
オフセット バイト数 フィールド 値
0 2 idReserved 0
2 2 idType 1
4 2 idCount 3
6 1 bWidth[0] 16 → 16
7 1 bHeight[0] 16 → 16
8 1 bColorCount[0] 0
9 1 bReserved[0] 0
10 2 wPlanes[0] 1
12 2 wBitCount[0] 32
14 4 dwBytesInRes[0] 248
18 4 dwImageOffset[0] 54
22 1 bWidth[1] 32 → 32
23 1 bHeight[1] 32 → 32
24 1 bColorCount[1] 0
25 1 bReserved[1] 0
26 2 wPlanes[1] 1
28 2 wBitCount[1] 32
30 4 dwBytesInRes[1] 720
34 4 dwImageOffset[1] 302
38 1 bWidth[2] 48 → 48
39 1 bHeight[2] 48 → 48
40 1 bColorCount[2] 0
41 1 bReserved[2] 0
42 2 wPlanes[2] 1
44 2 wBitCount[2] 32
46 4 dwBytesInRes[2] 1464
50 4 dwImageOffset[2] 1022
このページに引用した 16 進ダンプ、バイト数、コマンド出力は、このツールが実際に生成したファイルから取得したものです。デコーダの挙動に関するすべての主張は、独立した 3 つの実装、すなわちゼロから書いたエンコーダ、Pillow 12.3.0、Chromium 自身の ICO デコーダで相互検証しました。配信されているファビコンの多くが非圧縮ビットマップを使っているという観察は、2026 年 9 月に有名な 20 サイトのアイコンファイルを取得して解析した結果に基づいています。 — Go Tools エンジニアリングチーム · Sep 22, 2026

Go Tools の変換系ツールを作っている開発者が執筆・レビューしています。ここに書かれたコンテナの構造、バイト数、失敗の形は、他人がこの形式についてまとめた要約ではなく、書面のドメインレビューに基づいています。

PNG ICO 変換の早見表

favicon.ico にはどのサイズを入れるべき?

16・32・48 px この 3 つでブラウザのタブ、Alt-Tab の切り替え画面、デスクトップを賄え、1995 年から推奨されてきた組み合わせです。256 px を足すのは、アイコンが大アイコン表示でも通用する必要がある場合だけで構いません。

1 つの .ico に複数のサイズを入れられる?

入れられます。そのためのフォーマットです このフォーマットはコンテナです。6 バイトのヘッダー、画像 1 枚につき 16 バイトのディレクトリエントリ、その後に画像が続きます。どれも別々に描かれた絵であり、良いアイコンが 16 px でもくっきりしているのはそのためです。

PNG を ICO に変換すると透過は失われる?

正しく行えば失われません .ico の内部で画像を保存する 2 通りの方法は、どちらも 8 ビットのアルファチャンネルを完全な形で保持します。透過が失われるのは、ツールがアルファバイトを空のままにしたり、古いソフトが代わりに読む 1 ビットマスクを落としたりしたときだけです。

.ico の中の 256 px レイヤーはどれくらいの大きさ?

非圧縮で 264 KB、PNG なら数 KB 非圧縮の 256 px レイヤーはちょうど 270,376 バイトです。ヘッダー 40 バイト、ピクセル 262,144 バイト、マスク 8,192 バイトで、絵が何であっても変わりません。同じレイヤーを PNG で保存すれば、通常は数 KB で済みます。

ICO ファイルとは?

.ico は画像フォーマットというより、画像を束ねた小さなアーカイブです。先頭 6 バイトのヘッダーが中の画像の枚数を示し、続いて画像 1 枚につき 16 バイトのディレクトリエントリが並んで幅・高さ・バイト数・ファイル内の位置を伝え、その後ろに画像データ本体が置かれます。各画像の保存方法は 2 通りで、完全な PNG ファイルをまるごと埋め込むか、1 ビットの透過マスクを下にくっつけた非圧縮の Windows ビットマップにするかのどちらかです。

この設計があるからこそ、1 つのファビコンがブラウザのタブでは 16 px で、ファイルマネージャーでは 48 px で、どちらもくっきり見えます。サイズごとに手を入れて描き分けた別々の絵であって、1 枚の画像を拡大縮小しているわけではないからです。同時に、この設計がいくつかの意外な性質も生みました。辺の長さは 1 バイトで格納されるため 256 は 0 と書かれ、512 はそもそも書けません。さらにディレクトリが各エントリのサイズを記録し、画像データ自身も同じサイズを記録するため、両者が食い違うことがあり、しかもソフトによってどちらを信じるかが違います。

$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 16x16, 32 bits/pixel, 32x32, 32 bits/pixel

$ python3 -c "from PIL import Image; print(sorted(Image.open('favicon.ico').ico.sizes()))"
[(16, 16), (32, 32), (48, 48)]

この ICO 変換ツールができること

1 つのファイルに、選んだサイズすべて

既定は 16・32・48 px で、最大 256 px まで。各サイズは上のレイヤーから縮小するのではなく、元画像からフル品質で個別に描き起こすため、小さいサイズが大きいサイズのぼけを受け継ぐことがありません。

PNG か非圧縮 BMP か、両方のサイズを表示

コンテナ内部で許される 2 つのペイロード形式はトレードオフが大きく異なるのに、どちらを書いているかに触れる変換ツールはほとんどありません。ここではスイッチとして用意し、それぞれの結果のファイルサイズも表示するので、勘ではなく数字で決められます。

どちらの経路でも残る透過

アルファチャンネルは完全な形で書き込み、古いソフトが代わりに読む 1 ビットマスクも空のままにせずアルファから導出します。このマスクを空にすることが、マスクしか読まない環境で透過アイコンが黒い四角に化ける原因です。

ダウンローダーではなく ICO ビューア

逆方向のタブは、.ico の中にある画像を実サイズ・保存形式・ビット深度・透過の出どころとともにすべて一覧します。いくつかの有名なファビコンが今も使っているパレット方式のビットマップも含めて表示します。ブラウザが見せてくれるのはそのうち 1 枚だけです。

ファイルの矛盾を指摘する

ディレクトリが主張するサイズと画像データが一致しない場合、その旨を表示します。Firefox が捨ててしまう埋め込み PNG も指摘します。Firefox の ICO デコーダーは 8 ビットの RGB または RGBA しか受け付けないため、パレットやグレースケールのレイヤーは Firefox でだけ消えてしまい、ほかのブラウザではすべて正常に表示されます。どちらもアイコンがあるプログラムでは表示され別のプログラムでは空白になる、よくある原因ですが、他の変換ツールはどちらも報告しません。

アップロードは一切なし

読み込みもリサイズもパッキングも、すべてこのページの中で完結します。ファイルがサーバーに届かないので、後から消すものも、待たされる順番もありません。

コードで PNG を ICO に変換する

ImageMagick

magick in.png -define icon:auto-resize=48,32,16 favicon.ico

定番の答えであり、これほど多くのファビコンが非圧縮である理由でもあります。256 px 以外のすべてのレイヤーを詰め込む前にビットマップへ変換するため、3 サイズで数百バイトではなく 15 KB 前後になります。サイズは大きい順に書き込まれます。

Python + Pillow

img.save('favicon.ico', sizes=[(16,16),(32,32),(48,48)])

PNG を埋め込むため、同じ 3 サイズがおよそ 10 分の 1 の容量に収まります。Pillow は ICO の読み取りも得意で、Image.open(f).ico.sizes() が中身を一覧してくれるので、他人のファイルを確認するのに便利です。

png-to-ico(npm)

npx png-to-ico icon.png > favicon.ico

1 つ以上の PNG を受け取って PNG ペイロードとして詰める、単機能のコマンドラインツールです。ビルドスクリプトに組み込むには手軽ですが、リサイズはしてくれないので、各サイズをそれぞれのファイルとして自分で用意します。

sharp

sharp(input).resize(32).png()

個々の PNG を作るには非常に優れていますが、ICO コンテナは書けないため、通常は上のいずれかのパッカーと組み合わせます。ビルドパイプラインが既に sharp で統一されている場合に、よく混乱のもとになるところです。

Go

github.com/Kodeworks/golang-image-ico

image.Image から画像 1 枚の ICO を書き出します。単一サイズのファビコンには十分ですが、複数サイズを 1 つのコンテナに詰めるならディレクトリを自分で書くことになり、およそ 30 行の作業です。

Windows のアイコンコンパイラ

.rc リソーススクリプト、rc.exe

アプリケーションのアイコンを作る通常の方法です。コンパイラが .ico を実行ファイルのリソースセクションに埋め込みます。その中にあるコンテナは、ウェブのファビコンとまったく同じ形式です。

GIMP

ファイル → 名前を付けてエクスポート → .ico

画像の各レイヤーを 1 つのアイコンサイズとして書き出し、圧縮 PNG を含めてレイヤーごとにビット深度を選べます。この選択を黙って決めるのではなく見せてくれる、数少ないグラフィカルツールの 1 つです。

macOS の sips

sips -s format ico in.png --out favicon.ico

macOS にも ICO の書き出しは実はあります。sips --formats は com.microsoft.ico を書き込み可として挙げており、上のコマンドは実際に有効なファイルを生成しました。できないのは複数サイズのパックで、出力は 48×48 の 1 枚だけでした。検索結果がよく勧める iconutil のほうは Apple 独自のコンテナである .icns を出力し、Windows もブラウザも読めません。

PNG ICO 変換の実例をバイト単位で

3 サイズ入り .ico の先頭 38 バイト

$ xxd -l 38 favicon.ico
00000000: 0000 0100 0300 1010 0000 0100 2000 e903  ............ ...
00000010: 0000 3600 0000 2020 0000 0100 2000 6c05  ..6...  .... .l.
00000020: 0000 1f04 0000                           ......

0000 は予約フィールド、0100 はタイプ 1(カーソルではなくアイコン)、0300 は画像が 3 枚あることを示します。続くのが最初の 16 バイトのディレクトリエントリです。10 10 は 16×16、00 は色数、00 は予約、0100 はプレーン数 1、2000 は 1 ピクセルあたり 32 ビット、e903 0000 はペイロードが 1,001 バイトであること、3600 0000 はその位置が 54 であることを表します。54 はちょうど 6 + 3 × 16、つまりディレクトリの終端です。1 バイトで持つサイズを除き、複数バイトの数値はすべてリトルエンディアンです。

256 px のエントリに入るのは 256 ではなく 0

bWidth = 0x00    bHeight = 0x00
256 × 256

ディレクトリは辺の長さを 1 バイトずつしか持たないため、表せる最大値は 255 で、0 が 256 を意味すると定められています。このページのどこにも 512 px がないのも同じ理由です。512 を表せるバイトが存在しません。それでも 512 px を用意しているオンライン変換サービスは少なくなく、自分では記述できないディレクトリエントリの後ろに 512 px の画像を書き込んでいます。

同じ 3 サイズ、2 通りの保存方法

16 + 32 + 48 px, PNG payloads
16 + 32 + 48 px, uncompressed BMP payloads
389 bytes
15,086 bytes

非圧縮ペイロードのコストは 40 + 幅 × 高さ × 4 バイトに 1 ビットのマスクを加えたもので、寸法だけで決まり、絵の内容には一切左右されません。まったく別のアイコンを配信している 3 つのサイトが、1 バイトも違わない長さのファイルを配ることになり得るのはこのためです。

同じファイルをコマンドラインで作る

$ magick logo.png -define icon:auto-resize=48,32,16 favicon.ico
$ file favicon.ico
favicon.ico: MS Windows icon resource - 3 icons, 48x48, 32 bits/pixel, 32x32, 32 bits/pixel

ImageMagick は 256 px を除くすべてのレイヤーを非圧縮ビットマップに変換してから詰め込むため、出力は数百バイトではなく 15 KB 前後になります。Pillow は逆に PNG を埋め込みます:Image.open('logo.png').save('favicon.ico', sizes=[(16,16),(32,32),(48,48)])。

.ico をもう一度ばらす

$ magick favicon.ico favicon-%d.png
favicon-0.png   48×48
favicon-1.png   32×32
favicon-2.png   16×16

これはブラウザが代行してくれる作業ではありません。マルチサイズの .ico を <img> タグに渡しても、サイズがどの順で並んでいようと返ってくる画像はただ 1 枚、最大のものだけです。ファイルの中身を実際に一覧するにはコンテナを自分で解析するしかなく、それが「ICO → PNG」タブのしていることです。

PNG を ICO に変換する手順

  1. 1

    画像をドロップ

    PNG、JPG、SVG、WebP、GIF、BMP に対応し、上限は 10 MB です。ファイルがブラウザの外に出ることはありません。File API で読み込み、すべてのピクセルはローカルの canvas に描画されます。

  2. 2

    サイズを選ぶ

    最初は 16・32・48 px が選択されています。大アイコン表示や高 DPI のデスクトップでも通用させたいなら 64・128・256 を追加してください。選んだ最大サイズより元画像が小さい場合、黙って引き伸ばすのではなくページ上で明示します。

  3. 3

    保存形式を選ぶ

    既定は PNG です。ファイルサイズが 1 桁小さく、現行のブラウザすべてと Vista 以降の Windows が読めるためです。実際に配信されているファビコンの多くが取っている形が欲しければ非圧縮 BMP に切り替えてください。2 つのファイルサイズは並べて表示されます。

  4. 4

    ダウンロードして組み込む

    .ico を保存し、マークアップが必要なら「link タグをコピー」ボタンを使ってください。ルートの /favicon.ico は今もフォールバックとして機能しますが、ブラウザが最初に試すよう定められているのは明示的な link 要素のほうです。

ICO ファイルが壊れる理由

256 px のレイヤーを 255 と書く

256 px の画像に対応するディレクトリのバイトは 0 でなければなりません。255 と書くのは無害な 1 つずれに見えて、一部のブラウザが黙って描画を拒むファイルを生みます。

✗ 誤り
bWidth = 0xFF   bHeight = 0xFF   ; 256 のつもりで書いた「255」
✓ 正しい
bWidth = 0x00   bHeight = 0x00   ; 0 が 256 を意味すると定義されている

ディレクトリと画像でサイズの言い分が食い違う

ディレクトリエントリが 16×16 と言っているのにペイロードは実際 32×32 という場合、デコーダは二手に分かれます。ディレクトリを信じて何も描かないものと、ペイロードを信じて問題なく描画するものです。結果としてそのファイルは、あるマシンでは動き、別のマシンでは見えません。

✗ 誤り
entry: 16×16     payload IHDR: 32×32
✓ 正しい
entry: 32×32     payload IHDR: 32×32

ビットマップの高さフィールドを 2 倍にしていない

非圧縮レイヤーの内部では、高さがカラーデータとマスクの両方を含みます。素の高さを書くと、あるデコーダでは空白として表示され、別のデコーダでは画像の下半分として表示されるファイルになり、どちらもエラーを出しません。

✗ 誤り
biHeight = 32        ; 32 px の画像の場合
✓ 正しい
biHeight = 64        ; 2 × 32、カラーデータとマスクの合計

非圧縮レイヤーのアルファチャンネルが空

マスクだけを埋めてアルファバイトをすべて 0 のままにするツールがあります。あるデコーダはこれを完全に透明な画像と読んでアイコンが消え、別のデコーダはマスクにフォールバックして正しく表示します。両方を矛盾なく書いておけば、この論争ごと避けられます。

✗ 誤り
alpha bytes: all 0x00   mask: all 0x00
✓ 正しい
alpha bytes: real values   mask: set where alpha < 128

インターネット上のファイルを読み込む SVG

SVG 内部の外部参照はラスタライズ時にブロックされ、しかも何も報告されません。エラーは発生せず、canvas も読み取り可能なままです。画像が壊れたときのプレースホルダーが、そのままアイコンに焼き込まれます。変換する前に図形をインライン化してください。

✗ 誤り
<image href="https://cdn.example.com/logo.png"/>
✓ 正しい
<image href="data:image/png;base64,iVBORw0KGgo…"/>

PNG ICO 変換が必要になる場面

新しいサイトにファビコンを用意する
ロゴをドロップし、既定の 3 サイズのままで favicon.ico をダウンロードして、ウェブルートに置くだけです。コピーされる link タグには、同じアイコンのモダンな書き方が SVG と Apple タッチアイコンと一緒に入っています。
大きいと綺麗、小さいと潰れるアイコンを直す
たいていはファイルに大きなレイヤーが 1 枚しかなく、それ以外はブラウザが縮小しているだけです。256 px 版からではなく元画像から描いた本物の 16 px レイヤーを詰めることが、これを直す方法です。
デスクトップアプリにアイコンを与える
Windows の実行ファイル、インストーラー、ショートカットは .ico を受け取り、シェルの場所ごとに同じファイルから別々のサイズを取り出します。16・32・48・256 を詰めておけば、一覧の小さなアイコン、Alt-Tab の切り替え画面、大アイコン表示のすべてを賄えます。
アイコンが表示される環境とされない環境がある理由を突き止める
「ICO → PNG」タブでファイルを開いてください。ディレクトリが誤って記述しているサイズ、アルファが一切ないレイヤー、途中で切れたエントリは、いずれも一覧に現れます。隣のレイヤーが壊れていても、正常なレイヤーはそれぞれ書き出せます。
古い .ico から PNG を取り戻す
古いプロジェクトから引き継いだアイコンが、そのロゴの唯一残ったコピーということはよくあります。逆方向のタブは各レイヤーを個別の PNG として書き出します。多くの変換ツールが受け付けないパレットビットマップのレイヤーも対象です。

.ico ファイルの中身

6 バイト、その後は画像 1 枚につき 16 バイト
ヘッダーは 00 00 の予約、アイコンを表す 01 00(02 00 はカーソルファイル)、続いて 2 バイトの枚数です。各ディレクトリエントリは幅・高さ・パレットサイズ・予約バイトが 1 バイトずつ、その後に 2 バイトのプレーン数とビット深度、最後にペイロードの長さと位置を示す 4 バイトのフィールドが 2 つ並びます。複数バイトのものはすべてリトルエンディアンです。
0 は 256 を意味し、512 は表現できない
幅と高さが 1 バイトなので、256 は 0 として符号化するしかなく、それより大きい値には符号化そのものが存在しません。256 px のレイヤーに 0 ではなく 255 を書くのは近い近似ですらなく、ブラウザが描画を拒むファイルになります。512 px の選択肢を用意している変換ツールは、自分の中身を記述できないエントリを書いていることになります。
非圧縮レイヤーはちょうど 40 + 幅 × 高さ × 4 バイト、さらにマスク分
マスクは 1 行あたり ceil(幅 ÷ 32) × 4 バイトを足します。したがって 16 px のレイヤーは 1,128 バイト、48 px は 9,640 バイト、256 px は 270,376 バイトで、絵が何であるかとは無関係です。この固定コストがあるために、無関係な 3 つのサイトがバイト単位で同じ長さのファビコンを配信し得ますし、このページが 256 px のレイヤーをペイロードが PNG のときだけ提供している理由でもあります。
ビットマップヘッダーの高さは 2 倍で書く
非圧縮レイヤーの内部では、高さフィールドがカラービットマップと透過マスクを積み重ねたものを表すため、マスクが何の情報も持たない場合でも実際の高さの 2 倍を書きます。ここを誤ると、このフォーマットで最も静かな失敗の 1 つになります。空の画像を返すデコーダもあれば、画像の下半分を返すデコーダもあり、どちらもエラーを出しません。
プレーン数・ビット深度・色数のフィールドは良くても参考値
仕様はこれらについて厳密ですが、現実のファイルはそれを無視します。マイクロソフト自身のドキュメントサイトは、ディレクトリがプレーン数 0・1 ピクセルあたり 0 ビットと主張しながら中身は 4 ビットのペイロードというファビコンを配信していて、それがどこでも表示されています。デコーダはディレクトリを信じるのではなく、PNG シグネチャやビットマップヘッダーといったペイロードそのものから実際の形式を割り出します。
ICO に RFC は一度も存在しない
メディアタイプ image/vnd.microsoft.icon は 2003 年 9 月に IANA へ登録され、そこが挙げている参考文献は 1995 年のマイクロソフトの記事「Icons in Win32」です。ICO の仕様として広く引用されている RFC 2361 は、実際には「WAVE and AVI Codec Registries」という題で、画像については一言も触れていません。

favicon.ico を正しく作る

ウェブ用途なら 16・32・48 を詰めてそこで止める
この 3 点セットは 1995 年から推奨され続けており、実際のファビコンで最も多く見かける組み合わせでもあります。追加のサイズはただではありません。どれも、ブラウザがどれを欲しいか判断する前にダウンロードし得るレイヤーです。
16 px は縮小で済ませず描き起こす
256 px で成立するロゴも、16 px まで来ると細い線が失われるのが普通です。小さいサイズが重要なら、形を減らし線を太くして図案そのものを単純化し、その簡略版を独立したレイヤーとして詰めてください。
link 要素を使い、/favicon.ico はフォールバックとして残す
HTML 仕様がブラウザに伝えているのは、アイコンの link がないときに限って /favicon.ico を取りに行ってもよい、ということだけです。確実な経路は明示的な link 要素であり、ルートのファイルはフィードリーダーやクローラーなど、あなたのマークアップを解析しないものへの備えとして役に立ちます。
検索結果が重要なら 48 px より大きいサイズも用意する
Google のファビコンガイドラインは 8 px 以上の正方形を求め、さまざまな表示面で通用するよう 48 px より大きくすることを勧めています。PNG も ICO と同じように受け付けるため、その大きなサイズは .ico の中に入れる必要はありません。
眺めるだけでなくファイルを検査する
ブラウザで表示できているアイコンにも誤りはあり得ます。食い違ったディレクトリエントリ、欠けたアルファチャンネル、読み取れないレイヤーがあっても、ブラウザが選んだ 1 枚の表示は止まりません。逆方向のタブでファイルを開けば、それらがすべて見えます。

PNG ICO 変換のよくある質問

PNG を ICO ファイルに変換するには?
このページに PNG をドロップし、16・32・48 px を選択したままにして結果をダウンロードしてください。すべてブラウザ内で動くので、画像がアップロードされることはありません。コマンドラインでの一般的な同等手段は magick logo.png -define icon:auto-resize=48,32,16 favicon.ico です。
アイコンが小さいサイズでぼやけるのはなぜ?
ほぼ必ず、ファイルに大きな画像が 1 枚だけ入っていて、小さい表示はすべてブラウザがその場で縮小したものだからです。ピクセルのグリッドが縮む以上、無劣化の変換はあり得ません。細い線や細かいディテールは、リサンプリングがどれだけ優秀でも 24 px あたりを下回ると消えるので、画質を決めるのはどのサイズを詰めたかであって変換ツールではありません。本物の 16 px レイヤーを詰めてください。ロゴが細かい場合は、そのレイヤーについては拡大縮小ではなく図案を単純化しましょう。
内部の画像は PNG と非圧縮 BMP のどちらにすべき?
特別な理由がなければ PNG です。ファイルサイズが 1 桁小さく、現行のブラウザすべてと Vista 以降のすべての Windows が読めます。それでも実際には非圧縮ビットマップのほうが多数派で、主な理由は ImageMagick が既定でそちらに変換するからです。非常に古いソフトを相手にするなら、こちらのほうが安全でもあります。このページは両方のファイルサイズを表示するので、数字で決められます。
512 px の選択肢がないのはなぜ?
ディレクトリは辺の長さをそれぞれ 1 バイトで保持するため、表現できる最大値は 255 で、0 は 256 を意味するために予約されています。512 を書く方法はありません。それを提供している変換ツールは、後ろにある画像を記述していないディレクトリエントリを作ることになり、一部のソフトが表示を拒むアイコンを手に入れる近道になります。
透過背景の PNG は ICO にしても透明なまま保たれますか?
はい。アルファチャンネルは完全な形で書き込み、古いソフトが代わりに読む 1 ビットマスクも空のままにせずアルファから導出します。このマスクを空にすることこそが、一部のツールで透過背景が黒い四角に化ける原因です。半透明のピクセルは、アルファが半分を下回るとマスク上では透明として扱われます。マスクは 1 ピクセルあたり 1 ビットなので、これが唯一の選択肢です。
SVG を ICO に変換できますか?
できますし、各サイズがビットマップからの再サンプリングではなく図形の幾何から描かれるため、ベクター素材は考えうる最良の入力です。1 つだけ注意点があります。リンクされた画像、リモートのフォント、読み込まれるスタイルシートなど、SVG がネットワーク越しに取得するものは変換中にブロックされ、エラーも出ません。このページはそうした参照を検査して警告します。
サイトのルートに favicon.ico はまだ必要?
置いておく価値はありますが、もはや主経路ではありません。HTML 仕様が述べているのは、ブラウザが /favicon.ico を要求してもよい、しかもページにアイコンの link 要素がないときに限る、ということです。ブラウザが最初に使うよう告げられているのは link 要素であり、ルートのファイルはフィードリーダーやクローラーなど、あなたの HTML を一切解析しないものを賄います。
Google の検索結果には ICO ファイルが必要?
いいえ。Google のファビコンのドキュメントは BMP、GIF、ICO、PNG、JPEG、PPM、TIFF を受け付け、8 px 以上の正方形を要求し、さまざまな表示面で見栄えがするよう 48 px より大きくすることを勧めています。大きめの PNG が 1 枚あればそれで満たせます。.ico はそれ以外のすべてのための形式です。
.ico をブラウザで開くとサイズが 1 つしか表示されないのはなぜ?
img 要素が返せるのはそれだけだからです。マルチサイズの .ico をブラウザに渡すと 1 枚を選び、実際には最大のものが選ばれ、残りには手が届きません。すべてのレイヤーを一覧するにはコンテナを直接解析するしかなく、それがこのページの「ICO → PNG」タブのしていることです。
ディレクトリと画像でサイズの言い分が食い違うとどうなる?
そのファイルが内部で矛盾しているということで、デコーダの対応は正反対に割れます。ディレクトリを信じて結局何も描かないものと、画像データを信じて正しく描画するものです。アイコンがあるマシンでは動き別のマシンでは見えない、という古典的な原因なので、このページはファイルを開いたときにこれを指摘します。
他の変換ツールが拒む ICO ファイルも開けますか?
多くの場合は開けます。パレットビットマップとして保存されたレイヤー、つまり 1 ピクセルあたり 4 ビットや 8 ビットのものは、今もいくつかの有名なファビコンで使われていますが、多くの変換ツールはこれを門前払いします。壊れたレイヤーも 1 つずつ処理するため、読めないサイズが 1 つあっても残りの書き出しは止まりません。一覧では、Firefox が破棄する埋め込み PNG レイヤーにも印を付けます。Firefox の ICO デコーダーが受け付けるのは 8 ビットの RGB または RGBA だけなので、パレットやグレースケールの PNG はそこで消えてしまいます。Mozilla 自身のサイトも、まさにこの問題を抱えたアイコンを配信していました。64 px のレイヤーがパレット PNG で、Firefox 自身がそれを捨ててしまい、残りのレイヤーだけでアイコンの表示を保っています。
画像はどこかにアップロードされますか?
いいえ。ファイルはブラウザの File API で読み込まれ、このページの canvas に描画され、ローカルで動く JavaScript によってコンテナに詰められます。画像をどこかへ運ぶリクエストは発生しません。デベロッパーツールのネットワークパネルでご自身で確認できますし、ページを読み込んだあとでオフラインにしても、変換はそのまま動きます。

進数変換ツール — 2進数・16進数・10進数・8進数

単位変換

無料オンライン進数変換ツール。2進数、8進数、10進数、16進数および任意の基数(2-36)間で数値を瞬時に変換。BigInt対応で桁数制限なし。登録不要・サーバー送信なし、すべての処理がブラウザ内で完結。コピーボタンやコードリテラル出力で開発作業を効率化。

2の補数計算機 — 符号付き整数エンコーディング変換

単位変換

符号付き10進数を入力すると、符号絶対値表現・1の補数・2の補数・ゲタばき表現を4〜64ビットで同時に算出します。ビット列や16進バイトを貼り付ければ、同じパターンの5通りの読み方を並べて確認できます。8ビットの−128に符号絶対値表現と1の補数が存在しないことも明示。すべてブラウザ内で処理、無料、登録不要。

chmod 計算ツール — Linux ファイル権限

単位変換

Linux のファイル権限(パーミッション)を8進数(755・644)と rwx 記号で相互変換する無料計算ツール。chmod コマンドを自動生成し、chmod 755 の意味や 777 の危険な設定もひと目で確認。すべてブラウザ内で完結します。

カラーコンバーター — HEX, RGB, HSL & OKLCH

単位変換

HEX を RGB、HSL、OKLCH、OKLAB、CMYK にブラウザで変換できます。任意の形式をワンクリックでコピー。無料・登録不要・色データはページから一切送信されません。

HEX から CMYK へのコンバーター

単位変換

HEX カラーを CMYK にブラウザで変換できます。印刷プレビュー向けの sRGB ベースの単純な近似値です。無料・登録不要、色データはローカルから出ません。

HEX から HSL へのコンバーター

単位変換

任意の HEX カラーを HSL にブラウザで変換できます。3 桁・6 桁・アルファ付き 8 桁の HEX すべてに対応。無料・即時・登録不要、色データはページから一切送信されません。