ICO (ファイルフォ?マット)

出典: フリ?百科事典『ウィキペディア(Wikipedia)』
ICO
?張子 .ico
MIMEタイプ image/vnd.microsoft.icon
UTI com.microsoft.ico
開?者 マイクロソフト
種別 アイコン ?像ファイルフォ?マット
CUR
?張子 .cur
MIMEタイプ image/vnd.microsoft.icon
開?者 マイクロソフト
種別 マウスポインタ ?像ファイルフォ?マット

ICO は、 Microsoft Windows における アイコン で使用する?像 ファイルフォ?マット CUR マウスポインタ 用でICOとほぼ同じフォ?マットだが、 ヘッダ における識別バイトとホットスポットの記述が異なる。

ICOファイルには、1つ以上の?像が格納されており、各?像の大きさや 色深度 は??である。

IANA によって公式に登?されているICOファイルの MIMEタイプ image/vnd.microsoft.icon である。これが登?される以前、未登?ト?クンを x- で表すという規則から image/x-icon が使われていた。間違ったMIMEタイプを使っている例がよくあり、 image/ico image/icon text/ico application/ico などがある。 Webサ?バ で .ico ファイル用のMIMEタイプを設定していることは稀で、その場合はデフォルトのMIMEタイプとして text/html text/plain などが使われる。

アイコンの大きさ、色深度、透明部分のデ?タ [ 編集 ]

本?は32×32ピクセルの矩形で16色だったが、 最近 [ いつ? ] Microsoft Windows は複?サイズと 色深度 のアイコンをサポ?トしている。 Windows XP より以前から、アイコン?像の大きさは1×1ピクセルから255×255ピクセルまで可能で(正方形でなくてもよい)、色深度は1ビット、4ビット、8ビット、16ビット、24ビットがある。一般にアイコンファイルには32×32(スタ?トメニュ?やフォルダを「大アイコン」表示した場合)と16×16(ウィンドウのタイトルバ?、スタ?トメニュ?のサブメニュ?、フォルダの「小アイコン」表示や一?表示、詳細表示など)の大きさのものを格納している。

アイコン?像デ?タは常に2つの ビットマップ AND ビットマップと XOR ビットマップで構成される。ANDビットマップはピクセル?に1ビットが??し、背景に?してアイコン?像の各ピクセル位置が上書きされるか否かを指定している。XORビットマップはそれを基にXOR操作で上書きする。これによって?像に透明な部分を作ることができ、同時に背景を反?させるなどの技が可能になっている。

Windows XP では、32ビットの色深度のアイコン?像、 アルファチャンネル による透明化が可能となり、影をつけた半透明部分や アンチエイリアス された輪郭が可能となっている。32ビット?像を32ビットモ?ドで表示する際はANDビットマップは使用しないが、32ビット?像でも24ビットモ?ドではアルファチャンネルが削除されるため、24ビット?像が格納されていないときは32ビット?像にANDビットマップを適用して表示する。32ビット?像にANDビットマップが付?していない場合、24ビットモ?ドで表示しなければならないときは、透明化パタ?ンが不正なものとなる。Windows XPではさらに96×96ピクセルのアイコンを表示できるが、マイクロソフトは48×48ピクセルまでを推?しており、それ以上の大きなアイコンは一般的ではない。Windows XPは適?な大きさの?像がない場合、256×256ピクセル以上の大きさの?像でも?み?んで縮小して使う。ただし、そのような大きさのアイコン?像をそのまま使うことはない。

Windows Vista は256×256ピクセルのアイコン?像をそのまま表示するモ?ドもサポ?トしており、(必須ではないが) ?縮 した PNG フォ?マットもサポ?トしている。PNGフォ?マットの場合、PNGの持つ透明性デ?タを直接利用するため、通常のフォ?マットのANDビットマップやXORビットマップは存在しない。ICOファイルに256×256ピクセルのアイコンを格納する場合32ビットの色深度のみ利用でき、PNGフォ?マットを使ってファイルの肥大化を防ぐことが推?されている。Windows Vistaでは表示のズ?ミング(?大?縮小表示)ができるため、アイコンファイルにも??な大きさのものを格納しておくことが推?されている。

ICOファイルはいくつかの グラフィックソフトウェア で編集?出力が可能で、 GIMP CorelDRAW IrfanView Paint.NET (プラグインが必要)などがある。

アイコンライブラリ [ 編集 ]

アイコンライブラリはWindowsのアイコン群をパッケ?ジ化する手段である。基本的には New Executable 形式のバイナリファイルで、?張子が .ICL になっており、複?のアイコン リソ?ス が格納されている。

ファイル構造 [ 編集 ]

全ての値は リトルエンディアン 形式で格納される。大きさはバイト?。

アイコンヘッダ ICO/CURファイルに?する包括的情報を格納している。
ディレクトリ #1 1番目の?像に?する包括的情報を格納している。
ディレクトリ #n 最後の?像に?する包括的情報。
アイコン #1 1番目の?像の?際のデ?タ。AND/XORビットマップ形式か、PNG形式
アイコン #n 最後のアイコン?像デ?タ

ヘッダ [ 編集 ]

サイズは6バイト。

オフセット 大きさ ?容
0 2 予約?み。常に0
2 2 タイプ。アイコン (.ico) は 1、カ?ソル (.cur) は 2
4 2 このファイルにある?像の?

ディレクトリ [ 編集 ]

サイズは16バイト。

オフセット 大きさ ?容
0 1 幅。256ピクセルの場合は0になる。
1 1 高さ。256ピクセルの場合は0になる。
2 1 カラ?パレットの色?。カラ?パレットを含まない場合は0になる。
3 1 予約?み。常に0 [1]
4 2 ICOフォ?マットではカラ?プレ?ン?1 [2] 。CURフォ?マットではホットスポットのX座標。
6 2 ICOフォ?マットではピクセル?のビット? [3] 。CURフォ?マットではホットスポットのY座標。
8 4 ??するビットマップデ?タのバイト?。
12 4 ??するビットマップデ?タまでのファイル? オフセット

アイコン [ 編集 ]

AND/XORビットマップ形式かPNG形式で書きこまれる。

Windows Vistaでの推?アイコンサイズ [ 編集 ]

Windows UIでは、??なサイズのアイコンを使う場面が決まっている。マイクロソフトはこれについてガイドラインを提供している [4]

?連項目 [ 編集 ]

脚注?出典 [ 編集 ]

  1. ^ マイクロソフトの技術文書では常に0だとしているが、.NETに組み?みのアイコンエンコ?ダ (System.Drawing.Icon.Save) は255という値にしている。どちらにしてもOSはこの値を無視する。
  2. ^ 他のデ?タから推測できるので、0を設定することがある。1より大きな値をセットすると、下のピクセル?のビット?と掛け合わせて、最終的な色深度を求めるのに使われるはずである。ただし、Windowsの各バ?ジョンが1より大きい値をどう扱うかは不明である。
  3. ^ 他のデ?タから推測できるので、0を設定することが多い。特にPNGでない場合、?像サイズとビットマップデ?タのサイズからピクセル?たりのビット?は計算可能である。PNGの場合はPNGフォ?マットにこの値が含まれている。Windowsのあらゆるバ?ジョンで、ここを0に設定してもピクセル?たりのビット?を計算できるかは不明である。
  4. ^ Icons (Design basics) - Win32 apps | Microsoft Docs 特に "Color and saturation" と "Size requirements" の節を?照。

外部リンク [ 編集 ]