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

Re: 透明 favicon



青田です。

From: Katsumi Yamaoka <yamaoka@xxxxxxx>
Subject: [emacs-w3m:09831] 透明 favicon
Date: Tue, 11 Dec 2007 20:42:27 +0900

> 背景色が透明な favicon を表示するサイトがあるのですが、普通のバッ
> ファの背景色が見えてしまってカッコ悪いので、header line か mode
> line の色が表示されるようにしました。

この方法は少しまずい気がします。

$ wget -O google.ico http://www.google.co.jp/favicon.ico
$ convert -geometry 320x320 ico:google.ico png:- > google.png

として
;; convert の引数はこれであってますよね?

(insert-image
 (create-image "~/google.png" nil nil :ascent 'center :mask 'heuristic))

とすると画像の左上の一部が透過されてしまいます。

> さらに、そういう透明な部分の色を好みに応じて変えられるようにしよ
> うと思ったんですが、やり方がわかりません。実例も無いみたいです。
> Info にある `(RED GREEN BLUE)' はどういう値なんでしょうかね?

ということで、ここで指定された色(または heuristic が指定された時は四隅
で一番頻出の色)が透過されるみたいです。 また、 http://www.debian.org/
の favicon (四隅全て透過色)を同様に png に変換したものを :mask
'heuristic としても :mask (list 'heuristic (color-values "white")) とし
ても同じ結果が得られることから、透過色を指定してマスクすることも不可能
みたいです。

> それから、http://fedora-jp.sourceforge.jp/ の favicon が透明な背
> 景色を使っている Fj というイメージなんですが、なぜか Emacs では
> F の上の横棒が欠けてしまいます。Firefox や XEmacs では問題無いん
> ですが。どなたかわかります?

Firefox などの挙動は見てないのですが、 ImageMagick 付属の display だと
周りが白で Fj の中がくり抜かれている画像に見えます。周辺の白の部分が透
過されてしまって横棒が欠けているように見えるのではないでしょうか?

Emacs が透過色を白と混同している限りは、透過を実現しようとするなら、
convert に -background で何か背景色(もとの画像に存在しないもの)を与えて、
透過色を上書きして、その色を :mask で抜いていくしかないように思えます。

;; #FF0000,#00FF00,#0000FF,#010101 くらい調べれば一つくらいは使っていな
;; い色に当たりそうですが、問題はその色を使っていないことをどうやって調
;; べるかですね :-(

;; 逆に「透明な部分の色を好みに応じて変え」ることは、 convert で
;; -background '好みの色' とすればできそうです。

--
青田