問題描述
我需要將圖像轉(zhuǎn)換為位圖.
I need to convert an Image to a bitmap.
最初以字節(jié)形式讀取 gif,然后將其轉(zhuǎn)換為圖像.
initially a gif was read in as bytes and then converted to an Image.
但是當(dāng)我嘗試將圖像轉(zhuǎn)換為位圖時,顯示在我的圖片框中的圖形在以前是白色時變成了黑色背景.
But when I try convert the image to a bit map, the graphic displaying in my picturebox has a black background when it used to be white.
代碼如下:
var image = (System.Drawing.Image)value;
// Winforms Image we want to get the WPF Image from...
var bitmap = new System.Windows.Media.Imaging.BitmapImage();
bitmap.BeginInit();
MemoryStream memoryStream = new MemoryStream();
// Save to a memory stream...
image.Save(memoryStream, ImageFormat.Bmp);
// Rewind the stream...
memoryStream.Seek(0, System.IO.SeekOrigin.Begin);
bitmap.StreamSource = memoryStream;
bitmap.EndInit();
return bitmap;
有人可以解釋為什么背景變黑以及我如何阻止它這樣做.
Can some one explain why the background is going black and how i can stop it doing this.
謝謝
推薦答案
不要保存為位圖文件.文件格式不支持透明,保存時圖片不透明.
Don't save as a bitmap file. The file format doesn't support transparency, so the image will be saved without transparency.
您可以改用 PNG 文件格式.這將保持透明度.
You can use the PNG file format instead. That will preserve the transparency.
如果你真的需要它使用位圖文件格式,你必須先讓它不透明.新建一個相同大小的位圖,使用Graphics.FromImage
方法獲取一個圖形對象繪制在圖片上,使用Clear
方法填充背景顏色,使用 DrawImage
方法在背景上繪制圖像,然后保存該位圖.
If you really need it to use the bitmap file format, you have to make it non-transparent first. Create a new bitmap with the same size, use the Graphics.FromImage
method to get a graphics object to draw on the image, use the Clear
method to fill it with the background color that you want, use the DrawImage
method to draw your image on top of the background, and then save that bitmap.
這篇關(guān)于將圖像轉(zhuǎn)換為位圖會使背景變黑的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!