c# .net image-conversion alpha-transparency

c# - Convierta PNG transparente a JPG con color de fondo no negro



.net image-conversion (1)

Estoy usando System.Drawing.Image en .Net para hacer una conversión simple de png a jpeg. Básicamente estoy usando estas dos líneas de código:

Image img = Image.FromFile(filename); img.Save(newFilename, System.Drawing.Imaging.ImageFormat.Jpeg);

funciona bien, excepto cuando los archivos png contienen transparencia debido al canal alfa. En cuyo caso el jpeg convertido tiene un fondo negro. ¿Hay alguna manera de hacer el fondo blanco en su lugar?


// Assumes myImage is the PNG you are converting using (var b = new Bitmap(myImage.Width, myImage.Height)) { b.SetResolution(myImage.HorizontalResolution, myImage.VerticalResolution); using (var g = Graphics.FromImage(b)) { g.Clear(Color.White); g.DrawImageUnscaled(myImage, 0, 0); } // Now save b as a JPEG like you normally would }