トップページ > 過去ログ > 記事閲覧
画像の輪郭の半透明化(マスク)
名前:いいだ 日時: 2008/02/23 08:14

画像の表示について質問です。 透過色を用いて画像を表示する際に、 画像の輪郭部分だけ半透明化させることは出来るのでしょうか? 例えば、背景を黒で描いたイラストを、黒を透過色として画面に描画します。 描画画面の背景が黒ならばきれいに表示されるのですが、白であった場合は、イラストの輪郭に黒くふちが出来てしまいます。 マスク処理で解決できるかと思いましたが、マスクの説明に >マスク画面はグラフィック画面とは違い黒と白の2つ(2色)の状態しかない ピクセル(点)で構成されていて とあります。黒と白のほかに、グレー色も含んだマスク画像を使用して、グレー部分のみ透明に表示させるようなことは出来るのでしょうか? もしかしたら、別の処理で解決できる問題かもしれません。よろしければ教えてください。

Page: 1 |

Re: 画像の輪郭の半透明化(マスク) ( No.1 )
名前:dz 日時:2008/02/23 12:53

使えますよ 白黒のマスク画像を用意して 白と黒の境界をガウスぼかしなどでグレーにすれば 境界が半透明になってエッジが綺麗に見えます
Re: 画像の輪郭の半透明化(マスク) ( No.2 )
名前:tatu.net 日時:2008/02/23 13:18

ぼくもちょうど同じことを質問しようと思っていたので割り込ませていただきます。 中間色のグレーの色数やマスク画像の形式に制限はあったるするのでしょうか? テストとして白→黒のグラデーションのPNG形式の画像をマスクにしたところ、 全体に透過処理がかかってしまったのですが・・・
Re: 画像の輪郭の半透明化(マスク) ( No.3 )
名前:いいだ 日時:2008/02/23 17:14

>dzさん 回答ありがとうございます。 しかし、グレー色を含んだ画像により、マスク処理を行いましたが、うまく表示が出来ませんでした。 どうやら、グレー色の部分も黒と判断されてしまったようです。 以下に、用いたソースコードの一部を記述します。 何か間違いがあれば、ご指摘よろしくお願いします。 int Handle[2]; CreateMaskScreen(); Handle[0] = LoadMask("mask.bmp");//マスクに用いた画像 Handle[1] = LoadGraph("illust.bmp");//マスクをかけたい画像 DrawMask(0,0,Handle[0],DX_MASKTRANS_BLACK); DrawGraph(0,0,Handle[1],FALSE);
Re: 画像の輪郭の半透明化(マスク) ( No.4 )
名前:TNT 日時:2008/02/23 18:50

単に輪郭をきれいに(半透明に)したいのであれば、画像そのものを半透明にしてしまうのが楽です。 アルファチャンネル付きPNG形式が、透過画像のフォーマットとしては一般的かと思います。 問題は、このフォーマットを扱える手軽なペイントソフトがどこにあるか、なのですが… (私はそこら辺はあまり詳しくありませんので)
Re: 画像の輪郭の半透明化(マスク) ( No.5 )
名前:tatu.net 日時:2008/02/23 19:31

>TNTさん PictBearというソフト等で透過画像のフォーマット扱えますね。 が、画像そのものを半透明にしてしまってもDXライブラリで読み込むと不透明になってしまいます。 DXライブラリで半透明の処理をするのは無理ってことですかね・・・
Re: 画像の輪郭の半透明化(マスク) ( No.6 )
名前:TNT 日時:2008/02/23 19:40

>tatu.netさん 私の環境では透過pngは普通に扱えました。 うーん、何の違いなのでしょう…
Re: 画像の輪郭の半透明化(マスク) ( No.7 )
名前:かたぱると 日時:2008/02/23 20:19

横から失礼いたします。 以前同じような処理をやろうとしたときに (輪郭のみ実線で中身は半透明) DDSファイルを作成して利用してました。 DirectX準拠のα情報付きフォーマットというべきでしょうか。 DXLibはDDSも読み込めますので問題ないかと。 DDSはDirectXSDKのツールの中にある DirectX Texture Toolというソフトで作れます。 「Microsoft DirectX 9.0 SDK」 → 「DirectX Utilities」 → 「DirectX Texture Tool」 元画像とα情報の白黒画像をブレンドしてDDSファイルにする、といったものです。 DDS作成用のプラグインがある場合は 市販ソフトなどで対応しているものもあるようです (知り合い絵師談) 以前作ったテスト用のDDSファイルを以下にあげてみました。 興味ある方はDXLibで読み込んで表示してみてはいかがでしょうか。 ttp://okurin.bitpark.co.jp/download.php?unb=4ad68&sid=B47bffff1b320f&uid=xujnveFr
Re: 画像の輪郭の半透明化(マスク) ( No.8 )
名前:いいだ 日時:2008/02/24 13:20

>TNTさん 回答ありがとうございます。 アルファチャンネル付きPNGによって、半透過色の使用が可能であることがわかりました。 ありがとうございました。 >tatu.netさん shin's PNG Editerというソフトで作成したPNG画像ではうまく表示されました。 よろしければ試してみてはどうでしょうか。 >かたぱると さん 回答ありがとうございます。 DirectX Texture Toolを使用したところ、半透過色をもつddsファイルが作成できました。 わざわざテスト用のファイルまで用意していただき、ありがとうございました。
Re: 画像の輪郭の半透明化(マスク) ( No.9 )
名前:tatu.net 日時:2008/02/25 18:50

dds形式、面白いですねぇ。使わせてもらいます >TNTさん、いいださん すみません、16bitのため画像が荒くて気付かなかっただけで、ちゃんと半透明になっていました。レスありがとうございましたm(__)m

Page: 1 |