Dot-Net
如何使 System.Drawing.Image 半透明?
System.Drawing.Graphics.DrawImage將一張圖像粘貼到另一張圖像上。但我找不到透明度選項。我已經在圖像中繪製了我想要的所有東西,我只想讓它半透明(alpha-transparency)
沒有“透明度”選項,因為您嘗試做的是稱為 Alpha 混合。
public static class BitmapExtensions { public static Image SetOpacity(this Image image, float opacity) { var colorMatrix = new ColorMatrix(); colorMatrix.Matrix33 = opacity; var imageAttributes = new ImageAttributes(); imageAttributes.SetColorMatrix( colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); var output = new Bitmap(image.Width, image.Height); using (var gfx = Graphics.FromImage(output)) { gfx.SmoothingMode = SmoothingMode.AntiAlias; gfx.DrawImage( image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, imageAttributes); } return output; } }