.Dibujar la imagen con opacidad?

g.DrawImage 

Para … sí, dibuja una imagen en mi cuadro de imagen. ¿Es posible darle un atributo de opacidad? ¡He estado mirando las otras versiones de DrawImage pero no pude encontrar tal cosa!

Tienes que usar una ColorMatrix para combinar imágenes. Este es un control de C # que escribí hace un tiempo, te muestra el código básico que necesitarás. No es código VB.NET pero, oye, tampoco lo has intentado realmente:

 using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; public class BlendPanel : Panel { public BlendPanel() { DoubleBuffered = true; } public Image Image1 { get { return mImg1; } set { mImg1 = value; Invalidate(); } } public Image Image2 { get { return mImg2; } set { mImg2 = value; Invalidate(); } } public float Blend { get { return mBlend; } set { mBlend = value; Invalidate(); } } protected override void OnPaint(PaintEventArgs e) { if (mImg1 == null || mImg2 == null) e.Graphics.FillRectangle(new SolidBrush(this.BackColor), new Rectangle(0, 0, this.Width, this.Height)); else { Rectangle rc = new Rectangle(0, 0, this.Width, this.Height); ColorMatrix cm = new ColorMatrix(); ImageAttributes ia = new ImageAttributes(); cm.Matrix33 = mBlend; ia.SetColorMatrix(cm); e.Graphics.DrawImage(mImg2, rc, 0, 0, mImg2.Width, mImg2.Height, GraphicsUnit.Pixel, ia); cm.Matrix33 = 1F - mBlend; ia.SetColorMatrix(cm); e.Graphics.DrawImage(mImg1, rc, 0, 0, mImg1.Width, mImg1.Height, GraphicsUnit.Pixel, ia); } base.OnPaint(e); } private Image mImg1; private Image mImg2; private float mBlend; } 

Gracias Hans Passant ¡Es muy útil! Me salvó el tiempo

He convertido tu código en VB

 Imports System.Drawing Imports System.Drawing.Imaging Imports System.Windows.Forms Public Class BlendPanel Inherits Panel Public Sub New() DoubleBuffered = True End Sub Public Property Image1() As Image Get Return mImg1 End Get Set mImg1 = value Invalidate() End Set End Property Public Property Image2() As Image Get Return mImg2 End Get Set mImg2 = value Invalidate() End Set End Property Public Property Blend() As Single Get Return mBlend End Get Set mBlend = value Invalidate() End Set End Property Protected Overrides Sub OnPaint(e As PaintEventArgs) If mImg1 Is Nothing OrElse mImg2 Is Nothing Then e.Graphics.FillRectangle(New SolidBrush(Me.BackColor), New Rectangle(0, 0, Me.Width, Me.Height)) Else Dim rc As New Rectangle(0, 0, Me.Width, Me.Height) Dim cm As New ColorMatrix() Dim ia As New ImageAttributes() cm.Matrix33 = mBlend ia.SetColorMatrix(cm) e.Graphics.DrawImage(mImg2, rc, 0, 0, mImg2.Width, mImg2.Height, _ GraphicsUnit.Pixel, ia) cm.Matrix33 = 1F - mBlend ia.SetColorMatrix(cm) e.Graphics.DrawImage(mImg1, rc, 0, 0, mImg1.Width, mImg1.Height, _ GraphicsUnit.Pixel, ia) End If MyBase.OnPaint(e) End Sub Private mImg1 As Image Private mImg2 As Image Private mBlend As Single End Class