加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 03:47:07 所属栏目:百科 来源:网络整理
导读:我需要将图像转换为位图. 最初,gif以字节读取,然后转换为图像. 但是,当我尝试将图像转换为位图时,我的图片框中显示的图形在以前是黑色的背景. 这是代码: var image = (System.Drawing.Image)value; // Winforms Image we want to get the WPF Image from...
我需要将图像转换为位图.

最初,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方法绘制图像顶部的背景,然后保存该位图.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读