Convertir PNG transparent en JPG avec une couleur d’arrière-plan non noire

J’utilise System.Drawing.Image dans .Net pour effectuer une conversion simple de png en jpeg. J’utilise simplement ces deux lignes de code:

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

Cela fonctionne bien sauf lorsque les fichiers png contiennent de la transparence due au canal alpha. Dans ce cas, le JPEG converti a un fond noir. Est-il possible de rendre l’arrière-plan blanc à la place?

 // 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 }