c# - गैर-काली पृष्ठभूमि के रंग के साथ पारदर्शी PNG को JPG में बदलें



.net image-conversion (1)

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

मैं पीएनजी से जेपीईजी में एक साधारण रूपांतरण करने के लिए। मैं मूल रूप से कोड की इन दो पंक्तियों का उपयोग कर रहा हूं:

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

यह ठीक काम करता है सिवाय इसके कि जब पीएनजी फाइलों में अल्फा चैनल के कारण पारदर्शिता होती है। जिस स्थिति में परिवर्तित jpeg में काली पृष्ठभूमि है। क्या इसके बजाय पृष्ठभूमि को सफेद बनाने का कोई तरीका है?





alpha-transparency