出典: フリ?百科事典『ウィキペディア(Wikipedia)』
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]
。
?連項目
[
編集
]
脚注?出典
[
編集
]
- ^
マイクロソフトの技術文書では常に0だとしているが、.NETに組み?みのアイコンエンコ?ダ (System.Drawing.Icon.Save) は255という値にしている。どちらにしてもOSはこの値を無視する。
- ^
他のデ?タから推測できるので、0を設定することがある。1より大きな値をセットすると、下のピクセル?のビット?と掛け合わせて、最終的な色深度を求めるのに使われるはずである。ただし、Windowsの各バ?ジョンが1より大きい値をどう扱うかは不明である。
- ^
他のデ?タから推測できるので、0を設定することが多い。特にPNGでない場合、?像サイズとビットマップデ?タのサイズからピクセル?たりのビット?は計算可能である。PNGの場合はPNGフォ?マットにこの値が含まれている。Windowsのあらゆるバ?ジョンで、ここを0に設定してもピクセル?たりのビット?を計算できるかは不明である。
- ^
Icons (Design basics) - Win32 apps | Microsoft Docs
特に "Color and saturation" と "Size requirements" の節を?照。
外部リンク
[
編集
]