[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:4078] XPM color
- X-ml-count: 4094
- Subject: Re: [MD:4078] XPM color
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Mon, 30 Dec 2002 11:56:17 +0900
- User-agent: T-gnus/6.15.8 (based on Oort Gnus v0.08) (revision 05) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.7 (Fujiidera) APEL/10.4 Emacs/21.1 (i386-mingw-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha4 (KUROGANE)
>>>>> [meadow-develop : No.4081] にて
>>>>> "三好" = 私は書きました:
三好> 次のような実装状況です(多分)。
三好> o 実装済み
三好> :type, :file, :data, :ascent, :margin, :relief,
三好> :conversion, :background, :foreground
三好> o 未実装
三好> :heuristic-mask, :mask, :color-symbols,
:color-symbols を実装しました。
EmacsChess もちゃんと表示できます。
http://www.boreas.dti.ne.jp/~miyoshi/Meadow2/image/EmacsChess.png
;; T-gnus の起動画面が地味になったのはちょっと残念^^;;
以下余談。
(1) :color-symbols
:color-symbols というのは、 XPM 画像の色をファイル読込時に動的に
変更するためのプロパティです。
例えば、
> "~ c red s gray",
は、ピクセル値 `~' の色は `red' 、シンボル名(symbolic name)は `gray'
という意味です。
ここで、画像のプロパティとして、
> :color-symbols '(("gray" . "#808080"))
と指定すると、シンボル名 `gray' の色を `red' ではなくて、#808080
に変更できます。
チェスの駒のように、形は同じで色だけが違う画像を、単一の画像で生
成できるので便利な機能ではあります。
(2) 実装
ImageMagick で XPM 画像を読んだときに、パレット(colormap)情報が欠
落してしまうために、XPM の読込み関数(decoder) を ImageMagick の枠
組みで再定義しました。
当初は、ImageMagick での読込み後に、独自に XPM データをパースして
必要な情報を抽出する2パスで実装してました。でも、全データをパース
する必要がある(*)ことが、後で分かったため、ImageMagick の読込み関
数を再定義しました。
(*) 透明色(色が `None')の画像の場合、パレットデータだけでなく、ピ
クセルデータまでパースする必要がある。というのは、フルカラー
画像(DirectClass)として読み込まれるため、パレットの変更だけで
は対応できないから。
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)