[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: 透明 favicon



>>>>> In [emacs-w3m : No.09836] 青田さん wrote:

>> Version: ImageMagick 6.3.5 09/20/07 Q16 http://www.imagemagick.org
>> を使って http://fedora-jp.sourceforge.jp/ の favicon を
>> $ cat favicon.ico | convert -geometry 48x48 ico: png:- | display -
>>
>> で表示したものを添付しますね。背景の市松模様は、display が透過色
>> を表示する場合の仕様です。

> むむ、うちのとはマスク位置が正反対です。
> Version: ImageMagick 6.2.8 06/14/06 Q16 http://www.imagemagick.org
> を使い同様に表示したものを添付します。

ええっ、これが同じ画像だなんて信じられませんね。絵づらは XEmacs
が modeline に表示するものと良く似ています。同じ convert を使っ
て w3m-favicon-type の値も同じ png なのに、どうしてこうも違うの
かしらん。ちなみに Emacs が表示するものは IE6 のと似ていて、どち
らも "F" の上の横棒が欠けています。

> http://www.imagemagick.org/script/changelog.php に

> 2007-11-02 6.3.7-0 Cristy <quetzlzacatenango@xxxxxxxx>
>     Fixed transparancy bug for the ICO image format.

> とあるのが気になります。

ほほう。6.3.7-3 を試してみました。これだと "F" の上の横棒が見え
ます:

PNG image

>> もう一つの手としては create-image の引数で :background "色" を指
>> 定すると、少なくとも png ではできるみたいです。ただ、ImageMagick
>> や Emacs が link している libpng のバージョンにもよるかもしれな
>> いので、油断ができません。

> うぅむ、 :background はぼくも気がついたのですが、Emacs 22.1.50.1 、
> libpng が

> $ strings /home/QtPalmtop/bin/emacs|grep png|grep version
> libpng version 1.2.14 - November 28, 2006
> libpng version 1.2.14 - November 28, 2006 (header)

> で試してみてもうまくいきませんでした。

うちは libpng version 1.2.22 - October 13, 2007 でした。

> http://www.debian.org/ の favicon に対して

> (insert-image
>  (create-image "~/deb.png" 'png nil))
> => 背景が白

> (insert-image
>  (create-image "~/deb.png" 'png nil :background "red"))
> => 背景が黒 (= バッファの背景)

> となりました。

ことらではどちらも背景が黒。ほよよ。

> 透過だけはされているのかな?この時は、ちゃんと透過色だけが色抜きされて
> ます…。不思議…。これを利用して、mode-line の背景色を指定してやると透
> 過できているように見えるかもしれませんね。

やっかいなのは header line と mode line の背景色が同じではないこ
と、さらに mode line の色は選択されているときとそうでないときで
変化することですね。

あるいは表示する favicon の左右に 1-dot 幅の透明な縦棒をくっつけ
て heuristic を使うとか...ううむ、降りたくなってきた。^^;;

それから、png の透過色は、こことか emacs-devel で過去に話が出て
ましたが、まだ Emacs の普通のバッファ上ではサポートされていない
と思うんですよ。だから上記の青田さんの例は、こうでもして実験しな
いといけないと思います。

(と書いたものの、どうも w3m-favicon.el が作るものと同じ感じにな
りません。そのまま書いておきます。すみません。)

(progn
  (pop-to-buffer "*testing*")
  (setq header-line-format
	(propertize
	 " "
	 'display
	 (create-image "~/deb.png" 'png nil)
	 'face 'header-line)))
-- 
山岡