ファイルを渡す
.icoまたは.cur ファイルを選ぶか、ここにドロップします。内容を貼り付けても構いません。
.icoまたは.curファイルを選ぶと、ヘッダーとディレクトリの全エントリーを読み取ります。各画像について、保存されている幅・高さのバイト値と実効サイズ(0は256を意味します)、パレット色数、宣言されたプレーン数とビット数、カーソルならホットスポットのX・Y座標、データのサイズと位置を表示します。さらに各画像データの先頭バイトから、埋め込みPNGかDIBビットマップかを判定します。PNGならIHDRの幅・高さ・ビット深度・カラータイプを、ビットマップならヘッダーの種類、ピクセルあたりのビット数、圧縮方式、そして画像+マスクの高さを半分にした実際の高さを示します。ディレクトリと画像データの値が食い違うエントリーには警告が付き、別表でデータの重なり、どのエントリーも使っていない隙間、末尾の余分なバイトを確認できます。結果はJSONレポートとして保存できます。
またはファイルをここにドロップ
.icoまたは.cur ファイルを選ぶか、ここにドロップします。内容を貼り付けても構いません。
ファイルはこのブラウザ内で読み込んで解析します。サーバーには送りません。
出てきた内容を確かめてから、コピーやダウンロードに進みます。
ファイルがどう扱われるか気になりますか? プライバシーについて読む →
このページでICOファイルを選ぶだけで、収録サイズの一覧が表に出ます。各行に実効の幅と高さ、ビット深度、PNGかビットマップかが並びます。保存バイトの列は生の値なので、256ピクセルの画像はそこでは0と表示されます。絵そのものは表示されません。
いいえ、ファイルはブラウザのタブ内で読まれ、解析中の通信は発生しません。アイコンのバイト列は端末の外に出ず、タブを閉じればページ側には何も残りません。JSONレポートも、自分で保存した場合にだけ手元に残ります。
できます。EdgeやChromeでこのページを開きICOを選べば、ソフトなしで収録サイズが分かります。エクスプローラーのサムネイルでは一つの大きさしか見えませんが、ここでは16×16から256×256までのエントリーが行として並びます。表に出るのは先頭2,000エントリーまでで、それを超える分も含めた全エントリーはダウンロードできるJSONレポートで確認できます。
先頭2バイトが0でなく、拡張子だけ.icoに変えた別形式の可能性が高いです。表示される先頭6バイトが89 50 4E 47ならPNG、42 4DならBMP、FF D8ならJPEGです。その形式に対応したビューアーで開くか、アイコンとして書き出し直してください。
ダウンロードが途中で切れたファイルなので、取得し直すのが確実です。それでも、最後まで読めたエントリーは通常どおり一覧に表示されます。一方「宣言された画像数にはファイルより大きいディレクトリが必要」というエラーは、画像数の値自体が壊れている場合に出ます。
幅と高さは1バイト(最大255)で保存されるため、0が256を表す決まりです。表では保存バイトと実効サイズを並べて示します。読み込めるのは20,000,000バイト(約20MB)までで、表には先頭2,000エントリー、JSONレポートには全エントリーが入ります。
このツールは安全性を判定せず、マルウェアも検出しません。構造を報告するだけです。末尾の余分なバイト、重なったデータ、ファイル外を指すエントリーなどの警告は確認する価値がありますが、警告がないことは安全の証明になりません。判定はセキュリティソフトに任せてください。
同じ形式で、ヘッダーの種別が1ならアイコン、2ならカーソルです。カーソルではプレーン数とビット数の欄にクリック位置であるホットスポットのX・Yが入るため、表の列も切り替わり、画像の範囲内にあるかも判定します。拡張子と種別が矛盾していれば警告が出ます。
データ形式の列がpngならPNG、dibならBMP系ビットマップです。判定は拡張子ではなくデータ先頭のバイトで行います。dibの行ではヘッダーの種類と圧縮方式も分かり、どちらにも当てはまらないデータは不明として先頭16バイトが表示されます。
言えません。分かるのはディレクトリと各画像ヘッダーの整合性だけです。ピクセルはデコードしないので、ヘッダーより後ろのPNGデータが壊れていても警告は出ません。実際の見え方は、使う予定のアプリやブラウザで確かめてください。