あまつぶ

7.21【24ビットの色化け】

 Dreamweaverの続き。あと16日。リンク先を表示する機能は、コントロール+クリックでコンテクストメニューを呼び出し、「リンクされたページを開く」を選ぶようだ。手間は増えるけど、その分いろいろ機能が使えるのだからよしとしよう。
 テキストのサイズをショートカットで変更する方法はないのかな。テキストを選んでプロパティウィンドウから変更するか、コンテクストメニューで変更するか……ってところなのだけど、ショートカットで変更したいと思うのは私だけなんだろうか。
 あと、ブラウザでプレビューのショートカットが、F12だったりするのは納得いかない。ファンクションキーがついてないキーボードを使っているというのもあるけど、どっちにしてもF12なんてホームポジションから押せるキーじゃないし。ウィンドウメニューのショートカットはそうめったに押すものではないからいいとしても、ブラウザでプレビューなんてしょっちゅう使うような気がするんだけど。使いはじめなんて、特に。

 gooの検索オプションに、検索するドメインとパスを指定するというものがあるらしい。これを使えばあまつぶ内だけを検索……なんてこともできるはず。とういわけで、適当に作ってみたのがこのページ。http://hp.vector.co.jp/authors/VA010318/以下を検索。あまつぶの過去ログを調べる時なんかに使えるかも。ただし、「IconParty」とかを指定してしまうと、山のように引っ掛かるので注意。
 同じように、これを使えばSherlockのプラグインなんかも作れるんじゃないかという気もする。作っていいのかどうかよくわからないのだが、個人的に作成してみたら(初めて作ったので試行錯誤したけど)ちゃんとうまくできた。ふーむ、なかなか便利かも。

 表題の話。IconPartyで24ビットの画像が扱えるようになったのだが、それに関連して問題が発生。32*32の画像をコピーした時に、一番右のピクセルの色が化けてしまうことがあるのだ。問題ない場合もあるのでややこしいのだが、いろいろ試してみた結果 、ある特定の画像で発生することがわかった。また、化け方についても、RGBの青が抜ける(例えば、青→黒に、白→黄色になる)ということがわかった。
 とはいえ、再現はできても原因がわからない。最初は、アイコン(IconFamilyHandle)に変換(圧縮)する部分で問題が起こっているのかと思ったが、実はそうではなく、Pictureを作る部分、あるいは表示する部分に問題があるようだ。
 しかし、この問題、別にIconPartyでだけ起こるわけではなくて、Finderなどの他のアプリケーションでも起こるようだ。画像を扱うことができるアプリケーションはあまり持っていないのでいろいろ試すことはできなかったが、Finderのアイコン、IconParty、Photoshop Elements(デモ)で同じ画像をコピーし、IconParty、クラリスワークス、Photoshop Elements、ResEdit、スクラップブックなどにはりつけてみた。結果、Photoshop Elements(デモ)にはりつけた場合だけ正常に表示され、他は色が化けてしまった。
 Photoshop Elementsで正常に表示されるところを見ると、作る部分というよりは表示する部分に問題があるような気がする。しかし、Pictureを作る時に、ちょっとした小細工をしてやることによって他のアプリケーションでも正常に表示できるようになったのだ。なにかの参考になればと思い、以下にそのやり方を記す。

 まず、現象が再現した環境から。実は私の環境でしか起こらないのかも知れないので(笑)。環境は、MacOS 9.1と8.5.1。マシンは、初代G3のDT233。8.5.1の方は標準のもの以外にいろいろと機能拡張を入れているが、9.1はほとんど素のままで、Postino QuoColorとGeneva2Osakaが入れてあるくらい。
 化ける画像は、これ(4ビットのPNG画像にしてある)。フルカラー(24ビット)でコピーした場合のみ問題が起こり、それ以外(8ビットとか)では問題は起こらない(よって、試してみる場合は、保存してからなんらかの方法で24ビットに変換する必要がある)。一番右に、紫色(9900FF)の線があるが、ここがそのまま表示されれば正常、茶色(990000)になって表示されれば異常だ。
 小細工その1。Pictureを作る時に、ぴったりの32*32のGWorldではなく、例えば横に1ピクセル大きい33*32で作成し、その32*32の領域のみを使う。すると、なぜか、化けなくなる。不思議だ……。
 小細工その2。GWorldの大きさを変更するのが困難な場合は、Pictureを作る時に使うCopyBitsを2回にわける。まず、31*32の領域をコピーし、次に、右から1*32をコピーする。スピードが遅くなるのと、できたPictureの大きさが若干大きくなるのが気になるところだが、これで作っておけばコピーした時に色が化ける危険性はなくなる。

 さて、問題は、この方法で作ったPictureと、通常の方法で作ったPictureがどう違うのかということと、通 常の方法で作ったPictureを(Photoshop Elementsのように)正常な形で表示させるにはどうしたらいいのか、だ。あ、もうひとつ、どうしてこんなことが起こるのかってのもあるや(笑)。
 次回、この件についてなにかわかっていたら報告したい。


July 14, 2001 ↑ July index → July 29, 2001