5
我有一個PNG圖像從Android中的DrawingView
發送到WCF服務。該圖像以32位形式發送,並具有透明背景。我想用白色替換透明顏色(因爲沒有更好的單詞)背景。到目前爲止,我的代碼如下所示:用PNG圖像中的白色替換透明背景
// 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);
上述工作正常,但圖像具有透明背景。我注意到,在Paint.NET中,您可以簡單地將PNG格式設置爲8位,並將背景設置爲白色。然而,當我嘗試使用:
System.Drawing.Imaging.PixelFormat.Format8bppIndexed
我所得到的是一個完全黑色的圖片。
問:如何用png中的白色替換透明背景?
PS。圖像是灰度。
你有嘗試索引格式的原因嗎?你有沒有試過24種bpp格式的任何一種? – 2014-12-05 15:01:01
你應該可以創建一個白色的位圖並將圖像繪製到它上面,然後保存爲任何.. – TaW 2014-12-05 15:04:03
@NicoSchertler嗯..我嘗試了大多數,我不認爲全部。 Format24bppRgb給出了相同的結果。 – 2014-12-05 15:05:25