How to draw an image on canvas with transparency / alpha

there!

I forgot to use etc ... just the code:

var image = Image.FromFile(/* my magic source */); var bitmap = new Bitmap(image.Width, image.Height); var canvas = Graphics.FromImage(bitmap); var brush = new SolidBrush(/* my magic color */); canvas.FillRectangle(brush, 0, 0, image.Width, image.Height); canvas.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height)); canvas.Save(); bitmap.Save(/* my magic target */); 

I want to draw an image with alpha 55% on canvas . image is a .png file and uses transparency. (NOTE: I do not want to do image.MakeTransparent() - it is already transparent, I just need an alpha effect)

how can i achieve this

+6
c # gdi +
source share
1 answer

Try using ColorMatrix and ImageAttributes:

 ColorMatrix cm = new ColorMatrix(); cm.Matrix33 = 0.55f; ImageAttributes ia = new ImageAttributes(); ia.SetColorMatrix(cm); canvas.DrawImage(image, new Rectangle(0, 0, image.Width, image.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, ia); 
+14
source share

All Articles