tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルform上にロードするpictureの件の続き
記事No15631
投稿日: 2013/01/10(Thu) 01:21
投稿者マッキー星
先日のform上の任意の場所にpictureをロードする件については、「花ちゃん」先生、
回答をありがとうございました。
さて、その件についての続きですが、よろしくお願いします。

実は、pictureをロードした後、余白の部分(白色)を透過したいと思うのです。
こんな事は可能でしょうか。もし、可能ならば教えていただけますか。お願いします。

[ツリー表示へ]
タイトルRe: form上にロードするpictureの件の続き
記事No15632
投稿日: 2013/01/10(Thu) 10:29
投稿者VBレスキュー(花ちゃん)
> 実は、pictureをロードした後、余白の部分(白色)を透過したいと思うのです。

その余白とはどのようなものなのでしょうか?
元々の画像の白色の部分とか、ロードした時にできたものとか?
ロードした時にできたものならどのようにしてロードしたのか?
(先のコードではそのような余白は表示されないはずですが。)

そもそも、その余白部分を透明(Form を透過)したいのか? Form のバックカラーと
同じ色に塗りつぶしたいか?
(透過 した場合にその部分がどのように表示される事を期待しているのか)

[ツリー表示へ]
タイトルRe^2: form上にロードするpictureの件の続き
記事No15633
投稿日: 2013/01/11(Fri) 18:29
投稿者マツキー星

> その余白とはどのようなものなのでしょうか?
> 元々の画像の白色の部分とか、ロードした時にできたものとか?
> ロードした時にできたものならどのようにしてロードしたのか?

 jpgファイルで、写真の『模型の車』の部分だけを切り取った後に、別の画面に
貼り付けたファイルです。そのため、車以外の部分は白色になっています。

>
> そもそも、その余白部分を透明(Form を透過)したいのか? Form のバックカラーと
> 同じ色に塗りつぶしたいか?
> (透過 した場合にその部分がどのように表示される事を期待しているのか)

 車の部分だけを鮮明に表示したいので、余白部分は透明になります。
 よろしく、お願いします。

[ツリー表示へ]
タイトルRe^2: form上にロードするpictureの件の続き
記事No15634
投稿日: 2013/01/11(Fri) 18:52
投稿者マツキー星

> その余白とはどのようなものなのでしょうか?
> 元々の画像の白色の部分とか、ロードした時にできたものとか?
> ロードした時にできたものならどのようにしてロードしたのか?

 jpgファイルで、写真の『模型の車』の部分だけを切り取った後に、別の画面に
貼り付けたファイルです。そのため、車以外の部分は白色になっています。

>
> そもそも、その余白部分を透明(Form を透過)したいのか? Form のバックカラーと
> 同じ色に塗りつぶしたいか?
> (透過 した場合にその部分がどのように表示される事を期待しているのか)

 車の部分だけを鮮明に表示したいので、余白部分は透明になります。
 あるいは、車以外の白色部分が、取り込んだFormのバックカラーを自動的に認識して
 同じ色にできるようであれば最高にうれしいです。
 説明が足りず、本当に申し訳ございません。
  よろしく、お願いします。

[ツリー表示へ]
タイトルRe^3: form上にロードするpictureの件の続き
記事No15635
投稿日: 2013/01/12(Sat) 09:40
投稿者VBレスキュー(花ちゃん)
>  車の部分だけを鮮明に表示したいので、余白部分は透明になります。
画像ファイルの余白部分ではなく、画像の背景の白色の部分の事ですよね。
余白と背景では意味が異なりますので。

>  あるいは、車以外の白色部分が、取り込んだFormのバックカラーを自動的に認識して
>  同じ色にできるようであれば最高にうれしいです。

1.元の画像を加工して背景の部分を Form のバックカラーと同じ色にする
2.Form のバックカラーを白色にする
3.表示した画像の白色の部分をForm のバックカラーと同じ色に塗りつぶす
  http://www.hanatyan.sakura.ne.jp/vbhlp/gra_nuritubusi.htm のような方法で
4.Win32 API 関数の TransparentBlt を使って透過色を指定してビットマップをコピーする
5.Win32 API 関数を使って色を入れ替える
6.Win32 API 関数を使って画像の形のFormを作成する

それぞれの実装コードについては、ご自分で調べて下さい。

[ツリー表示へ]
タイトルRe^4: form上にロードするpictureの件の続き
記事No15636
投稿日: 2013/01/12(Sat) 18:48
投稿者マッキー星
> 画像ファイルの余白部分ではなく、画像の背景の白色の部分の事ですよね。
> 余白と背景では意味が異なりますので。
>
> 1.元の画像を加工して背景の部分を Form のバックカラーと同じ色にする
> 2.Form のバックカラーを白色にする
> 3.表示した画像の白色の部分をForm のバックカラーと同じ色に塗りつぶす
>   http://www.hanatyan.sakura.ne.jp/vbhlp/gra_nuritubusi.htm のような方法で
> 4.Win32 API 関数の TransparentBlt を使って透過色を指定してビットマップをコピーする
> 5.Win32 API 関数を使って色を入れ替える
> 6.Win32 API 関数を使って画像の形のFormを作成する
>
回答を、ありがとうございました。
この手順通りできるかどうかわかりませんが、やってみます。

[ツリー表示へ]