あまつぶ

2.28 10:00 【書くは易く、読むは難し】

 なんとなくまたエイリアスバッジアイコン用リソースを作成。これ。面 倒なんでドキュメントもなにもついていないけど、とりあえずフリーとする。誰も2次利用しようとか思わないだろうから扱いに関しては「ご自由にお使いください」ということにしておこう。使い方はSystem Resourcesに張り付けるだけだけど、例によって張り付けたことによるトラブルが起こってもぼくは一切責任を負わない。ま、うちでは問題なくいけてるから大丈夫だろうと思うけど。もう少しいろいろ作ったら置き換え用のプログラムでも書いて公開してみるのも面 白いかなと思いつつ、そんなにたくさん思いつかないかな(笑)。
 このバッジって、フルカラーとか半透明とか使えるのかなー。使えそうな気はするけど半透明用のリソースを作る気力がない(笑)。作ってもちゃんと動くかどうか調べるのに再起動しないといけないし。ま、調べるのも面倒だし気にしなくていいか。
 バッジ用のリソースは'icns'っていうリソースなんだけど、これを直接編集できるプログラムってのをぼくは知らない。今回は、とりあえずIconPartyで元の絵を作成してFinderにフォルダとして書き出し、Finder上でアイコンをコピーしてResEditで新規ファイルを作成してペースト、その中の'icns'リソース以外を削除して……という流れで作ってみた。この方法だとミニアイコンを作ってくれないから若干問題だが、ミニアイコンがなくてもFinderがちゃんとなんとかしてくれるようなので気にしない(笑)。うちではそもそもミニアイコンが表示される機会がほとんどないし。
 しかしまあ、めんどくさいことは事実だ。絵なりアイコンなりを用意すると例えばフォルダとかと重ね合わせた場合のプレビューを表示してくれて気に入れば'icns'リソースとして書き出してくれるようなソフトがあると便利だな。なんか前にも似たようなことを書いた覚えがあるけど……(^^;; 存在する'icl8'だとか'icn#'だとかを元に'icns'を作成するのは簡単だけど(8.5上なら)、'icm#'なども含めて作るのはちょっとめんどくさい。'icm#'とか'icm8'も編集できるソフトってあるのかしら?

 今日はアイコンの話ばかりが続く。表題の話。
 昨日、Windows用のアイコン書き出しルーチンを作ったことを書いたけど、ついでに読み込みルーチンも作ってみようかなと。256色アイコンについてはヘッダ以外はほぼ構造がわかっているからあとは16色やその他のアイコンをチェックすればokなはず。他にどんなアイコンがあるのかなと、適当にアイコン集をいくつかダウンロードしてみた。それをHexEditorで開いてみると……、なんか妙にサイズが大きなファイルがあるな……。ヘッダの長さも長いみたいだし。なんだこれは……。
 しばらく調べて、なんとか内容は理解できた。どうやら、「256色 32*32だけ」とか「16色 16*16だけ」とかいうものではなく、「256色 32*32と16色 32*32」といったようにいくつかの種類をまとめたファイルらしい。ま、Macでいうなら、「256色 32*32だけ」は'icl8'に、「16色 16*16だけ」は'ics4'に、いくつかまとめたものは'icns'に置き換えられるだろうか。「〜だけ」にもマスクが含まれているからちょっと正確ではないが。
 調べたアイコンファイルには4つのアイコンデータが含まれていて、それらが順番に並べられている。ヘッダがアイコンの数だけ長くなって、あとはそれぞれのアイコンのデータがベタに並んでいるだけだった。なんだかよくわからなかったヘッダ部分も「データの長さ」や「オフセット」であることも理解できた。
 あとは順番にデータを取り出して256色のアイコンを'icl8'に、16色は'icl4'に……と置き換えてやればいけそうなのだけど、問題は「カラーパレット」だ。Winのアイコンは内部にカラーパレットが入っていて、16色のアイコンでも、使う色は(たぶん)4096色から自由に選ぶことができるのだ。'icl4'で利用できる色は固定だから、データを完全にきれいに移すことができるとは限らない。256色アイコンについても同じこと。CopyBitsで転送する際にディザをかけてやればそこそこきれいにいくかもしれないけどどんなもんかなー。ま、このへんは実験してみるしかないか。
 それから、「アイコンのデータがベタに並んでいる」と書いたが、本当に並んでいるだけなのでマスクデータがアイコンの数と同じだけある。「256色 32*32」と「16色 32*32」では別のマスクパターンが使われるというわけ。普通は同じものを使うんじゃないかと思うけどひょっとしたらわざと違うものにしている場合もあるかも知れない。そうすると、そういうアイコンはMac側では完全に再現することはできない。これはあきらめて256色のアイコンのマスクを使うことにすれば一応はokか。
 書き出しが楽なのは、書き出す時のフォーマットは1つだけ考えればとりあえずできてしまうから。読み込みの時はあり得るフォーマットすべてに対応しないといけない。メールソフトについても、送るだけなら簡単だが、受信は難しい。1つのファイルにまとまっているから案外扱いやすいかなと思っていたWinアイコンも、なかなか厄介なものだった(^^;; ま、気長にやろう(笑)。

 関係ないけど、これからWin98でも買ってくるか……(苦笑)。

to February 27, 1999 ↑ to February index → to March 1, 1999