2008/6/25 水曜日

Sidebar gadgetで背景画像に透過PNGを使うと・・・

カテゴリー: 技術情報, 面白いもの — chiztek-team @ 21:52:21

じめじめした天気が続きますが、あじさいがきれいですね。
皆様いかがお過ごしでしょうか。
「CHIZTEK(チズテク) 手描き地図検索」の開発チームです。

今回はまたまたchiztekとは直接関係の無いエントリになってしまうのですが、
Windows vistaのサイドバーガジェットを開発していて気がついたことを
書きたいと思います。

サイドバーガジェットの中には背景が透明なガジェットが数多くあります。
特に透過PNG(アルファチャンネル付)のものは、透過GIFと違い、
半透明な透過もできますから、画像を生かした楽しいデザインにするときに
とっても便利です。

しかし、背景画像(g:background)に透過PNGを設定した場合、
その上に画像(g:image)を配置すると、フチにピンクのジャギジャギが
ついてしまいます。

例えばこんな感じです。
gadget_png_before
要するに「透過PNGの半透明の部分の上に、更に半透明な画像が重なると、
表示が壊れてしまう」ということなんです。
困りましたね・・・。
(デザインに凝り始めると、結構こういうケースはあるのです…)

でもこのジャギジャギを出さない方法がありました。
前出の方法では、gadgetのhtmlにg:imageを静的に記述していますが、
g:backgroundに対してAddImageObject()で動的に
g:imageを追加すればよいのです。

addImageObject メソッド

結果はこんな感じです。
gadget_test_after
今度はきれいに表示されました!

ふたりならぶと
白系の背景にふたりを並べてみるとこんなにちがいます!

というわけでサイドバーガジェットの開発こぼれ話でした。
それでは失礼いたします。

HTML convert time: 0.300 sec. Powered by WordPress
Copyright (C) 2007 fmfmsoft corp.