मेरे पास एक पीएनजी छवि को एक डब्ल्यूसीएफ सेवा में DrawingView
से भेजा जा रहा है। छवि 32-बिट के रूप में भेजी जाती है और इसमें पारदर्शी पृष्ठभूमि होती है। मैं सफेद के साथ पारदर्शी रंग (बेहतर शब्द की कमी के लिए) पृष्ठभूमि को प्रतिस्थापित करना चाहता हूं। अब तक मेरा कोड इस तरह दिखता है:पीएनजी छवियों में सफेद रंग के साथ पारदर्शी पृष्ठभूमि को बदलना
// Converting image to Bitmap object
Bitmap i = new Bitmap(new MemoryStream(Convert.FromBase64String(image)));
// The image that is send from the tablet is 1280x692
// So we need to crop it
Rectangle cropRect = new Rectangle(640, 0, 640, 692);
//HERE
Bitmap target = i.Clone(cropRect, i.PixelFormat);
target.Save(string.Format("c:\\images\\{0}.png", randomFileName()),
System.Drawing.Imaging.ImageFormat.Png);
उपर्युक्त काम ठीक है, छवियों को पारदर्शी पृष्ठभूमि के अलावा। मैंने देखा कि पेंट.नेट में आप बस पीएनजी प्रारूप को 8-बिट पर सेट कर सकते हैं और यह पृष्ठभूमि को सफेद पर सेट करता है। हालांकि, जब मैंने इसका उपयोग करने का प्रयास किया:
System.Drawing.Imaging.PixelFormat.Format8bppIndexed
मुझे बस एक पूरी तरह से काला तस्वीर मिली।
प्रश्न: पारदर्शी पृष्ठभूमि को पीएनजी में सफेद के साथ कैसे बदलें?
पीएस। छवि ग्रे स्केल में है।
क्या कोई कारण है कि आपने अनुक्रमित प्रारूप का प्रयास क्यों किया? क्या आपने 24 बीपीपी प्रारूपों में से किसी एक की कोशिश की है? –
आपको एक सफेद बिटमैप बनाने और उस पर छवि खींचने में सक्षम होना चाहिए, फिर जो कुछ भी बचाएं .. – TaW
@ निकोशेचरलर हम्म .. मैंने उनमें से अधिकांश की कोशिश की, मुझे नहीं लगता। Format24bppRgb एक ही परिणाम देता है। –