[リストへもどる]
一括表示

投稿時間:2004/02/20(Fri) 11:20
投稿者名:N502i
URL :
タイトル:
PaintPictureについて
    こんにちは。    

    ピクチャーボックス上に、イメージボックスを配置しています。
    このときは、Image1の背景は透明なのですが、
    以下のプログラムを実行すると、Image1の背景が白に変わってしまいます。
  Image1がGif形式だからなのでしょうか?背景を透明で貼り付けることが出来るよい方法があったら
    教えてください。

Private Sub Form_Load()
    Picture1.AutoRedraw = True
    Picture1.Picture = LoadPicture("C:test.jpg")
    Image1.Picture = LoadPicture("C:test2.gif")
End Sub

Private Sub Command1_Click()
 Picture1.PaintPicture Image1.Picture, Image1.Left, Image1.Top,Image1.Width,Image1.Height
End Sub

投稿時間:2004/02/24(Tue) 00:16
投稿者名:Say
Eメール:
URL :
タイトル:
Re: PaintPictureについて
ちょっと放置プレイしてみましたが、
だれもレスつけないんでレスしますが・・・

透明なんて色は存在しません。
透明に見えるなら(いや、透明なら見えないんですがそれはおいといて)
それはどこかで親切なだれかがマスク処理して、背景と合成してくれているだけです。
白に「変わって見える」なら、それは変わって見えるのではなく、
おそらく本来が白で、親切な誰かがマスク合成して背景を重ね描きしてくれていたから
透明っぽく見えた(見えない)だけです。

>背景を透明で貼り付けることが出来るよい方法があったら

親切な「だれか」に頼らず、APIなんぞを使って自前でマスクでも合成でもすればいいかと・・・。
「アルファチャネル」とか、「アルファブレンド」とかで調べれば、
半透明にする方法なんかもみつかるでしょう。
アルファといっても横浜に買い物に行ったりするわけではありませんが。

「レイヤードウィンドウ」なんかでもお手軽半透明合成ネタが見つかるかと。
(OSが制限されますが。)

普通は透明といったらキーワードは「マスク」と「リージョン」です。