c# – 将图像转换为位图会使背景黑色

前端之家收集整理的这篇文章主要介绍了c# – 将图像转换为位图会使背景黑色前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要将图像转换为位图.

最初,gif以字节读取,然后转换为图像.

但是,当我尝试将图像转换为位图时,我的图片框中显示的图形在以前是黑色的背景.

这是代码

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;

有些人可以解释为什么背景会变黑,以及如何阻止这样做.

谢谢

解决方法

不要保存为位图文件.文件格式不支持透明度,因此图像将不会保留透明度.

您可以使用PNG文件格式.这将保持透明度.

如果您真的需要使用位图文件格式,则必须先使其不透明.创建一个具有相同大小的新位图,使用Graphics.FromImage方法获取图形对象来绘制图像,使用Clear方法填充所需的背景颜色,使用DrawImage方法绘制图像顶部的背景,然后保存该位图.

猜你在找的C#相关文章