これまでアイコンファイルを保存するときは以下のようにしていました。

この方法ではアイコンが16色になってしまいます。

以下の方法はどうでしょうか。この方法はダメです。この方法ではたしかにicoファイルが保存されるのですが、Icon形式ではなく、PNG形式で保存されます。そこで実際にIconを使おうとすると例外が発生していまいます。

上の方法で保存したファイルをつかって以下の処理をしようとすると例外が発生します。

下の場合は例外は発生しません。ビットマップファイルでもアイコン化することができます。

これだったらアイコンをファイルとして保存せずに、BMPやPNGファイルからIconを作ったほうが早そうです。

アイコンファイルの保存をするのであれば、自前でやるしかなさそうです。

アイコンフォーマットは以下のようになっています。

参考にしたサイト

ICO (ファイルフォーマット) – Wikipedia

ファビコン 失言の多いプログラマ

これらによるとアイコンファイルのフォーマットは以下のようになっていることがわかります。

アイコンヘッダ……ICOファイルに関する包括的情報を格納している。
ディレクトリ[1..n]……個々の画像に関する包括的情報を格納している。
アイコン画像データ[1..n]……AND/XORビットマップ形式か、PNG形式

それからビットマップファイルフォーマットは以下のようになっています。

参考にしたサイト

ビットマップファイルフォーマットについて

実際に保存されているアイコンファイルがどのようになっているのか実際に開いて調べてみました。

そこでフルカラーで保存するにはこのなかの値を適切に書き換える必要があります。

ディレクトリ内の対応するビットマップデータのバイト数を変更する。
画像データ内のビットカウント 「32」に変更する。
カラーマップは必要ない。

このようなメソッドをつくってみました。

一応、これでアイコンを保存することができます。