2016年09月17日

実験的にexeファイルに48x48アイコン・256x256アイコンを追加してみたり

巨大サイズのアイコンは、exeフィルのサイズを無駄にでかくするのでバカバカしいけど、アイコンがボヤけて表示されるのも嫌だという話を、先日書いたわけなのですが、その後色々調べてみたところ、アイコンファイルは条件次第で圧縮可能であることが分かりました。

拡張子icoのファイルは、複数のサイズ・複数の色数の画像を格納することができるのですが、その際、ベタで非圧縮な画像にするか、PNG圧縮の画像にするかが選べるフォーマットになっているとのこと。

ただし、exeファイルを閲覧する環境(OS)によっては、非圧縮な画像しか読めない場合があります。
例えば、Windows 95/98は非圧縮なアイコン画像しか読めません。
Windows Vista以降になるとPNG圧縮のアイコン画像を読めるようになるとか。

色々総合すると、

  • 16x16 BMP
  • 32x32 BMP
  • 48x48 BMP
  • 256x256 PNG

という揃え方をすると良さそうな感じです。

で、問題は、上記のようなファイル構成を実現するための方法。

残念ながら、Visual Studioでは、少なくとも2010では、画像形式をPNGに切り替える方法はなさそう。通常のアイコンは形式名をBMPと認識している、というか表示しているくらいだから、PNGもできそうなもんだけど。表示だけに対応なんだろうか。

vs2010iconedit.png

いろいろ調べてみたら、フリーソフトのアイコン編集ツール「@icon変換」を使えばできるみたい。こんなところでサードパーティのソフトを使うのが必須とはなぁ。

vs2010iconedit3.png

結果から言えばできました。たかが4KB増程度で、48x48と256x256のアイコンを追加できました。

vs2010iconedit2.png

まぁ、効率よく通過色部分を処理するために、昔ゲーム作りの時に使っていた自作の「左上のピクセル色をアルファ値0にする」ツールを行使することになったんですけどね。PNGで通過色処理をうまくやるには、それなりのツールを持っていないと駄目そうですね。Photoshopとか。


続きを読む
posted by ayacy at 04:20 | Comment(0) | TrackBack(0) | プログラミング