BMP画像の背景を透明にできないの?

解決


ソフト  2003-05-02 01:22:54  No: 107013

すみません、初心者です。質問されて下さい。
今、フォーム上に丸みのある長方形の画像を幾つか置いて、移動できる
ようにしているのですが、その画像同士が重なるとき、背景が透明でない
ため、角が白く下の画像が、消えてしまいます。
利用しているのは、BMP画像です。GIF画像を利用しようと思ったのですが、
マウスイベントを使った時に一瞬、消えてしまうためBMPで我慢しています。
よろしけれが、BMPの背景を透明にするヒントを教えて頂けないでしょうか?
どんな事でもいいので、よろしくお願いします。


すーさん  2003-05-02 01:52:32  No: 107014

説明すると長くなりそうなので
TransparentBlt
AlphaBlend
BitBlt
あたりで検索してみてください。ちなみにAPIです。


ソフト  2003-05-08 20:40:00  No: 107015

返事が大変遅れまして、すみませんでした。

APIでWindowsの全OSで使えるのはBitBlt関数ぐらいみたい?ですが、
どうも、うまくいかないので質問を変えさせて下さい。

前回も書かせて頂いたのですが、背景が透明なGif画像をImageで表示させ
ドラッグで移動する時、白黒に点滅します。
これは、Imageのドラッグ時は、そうなるのでしょうか?
それとも、自分のプログラムが悪いのでしょうか?
どうか、宜しければ、原因を教えて下さい。

Dim Drg As Boolean
Dim DrX As Single, DrY As Single

Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)

  If Button = 1 Then
    If Drg = False Then
      Drg = True      
      DrX = x: DrY = y
      Image1.ZOrder 0
    End If
  End If
  
End Sub

Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

FH = Form1.Height
FW = Form1.Width

Gh = Image1.Height
Gw = Image1.Width

  If Button = 1 Then
    If Drg Then

      XX = Image1.Left + x - DrX
      YY = Image1.Top + y - DrY
      
        If XX > 0 And YY > 0 Then
        
        If XX < FW - Gw And YY < FH - Gh Then        
        Image1.Move XX, YY
        End If
        
        End If
        
    End If
  End If
  
End Sub

Private Sub Image1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)

If Button = 1 Then
Drg = False
End If

End Sub


とおりすがりのおやじ  2003-05-16 20:19:09  No: 107016

答えになってるかわかりませんが、
以前、私が背景の透明化を必要とした時、以下のサイトを参考にしました。

http://dobon.net/vb/dotnet/graphics/maketransparent.html

良かったら参考にどうぞ。


ソフト  2003-05-17 08:37:30  No: 107017

とおりすがりのおやじさん、返事ありがとうございます。
もう記入してかなり経つので返事はないと思っていました。
本当にありがとうございます。
今回の件ですが、BitBltでなんとかなりました。イベントが多くて
大変でしたけど。[^-^]
返事してくれたHPアドレスは、VB.Netでしたが、あれぐらい簡単に
書けたら楽なんですけどねー。
それでは、無事解決です。色々ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加