首页 > 解决方案 > 如何从 BitmapImage 在 Bitmap 中设置透明背景?

问题描述

我有将 BitmapImage 转换为 Bitmap 的功能:

private Bitmap BitmapImage2Bitmap(BitmapImage bitmapImage)
{
    using(MemoryStream outStream = new MemoryStream())
    {
        BitmapEncoder enc = new BmpBitmapEncoder();
        enc.Frames.Add(BitmapFrame.Create(bitmapImage));
        enc.Save(outStream);
        System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(outStream);

        return new Bitmap(bitmap);
    }
}

我的图像有黑色背景(因为 .PNG 他们有透明背景)。

如何使它们始终具有透明背景?

标签: c#.netbitmap

解决方案


如果你的显示技术是 WinForms,答案是:你不能真的。WinForms 已经有几十年的历史了,以支持显示端的适当透明度。

Windows 窗体非常擅长伪装透明度,但不是那么好:https ://www.codeproject.com/Articles/25048/How-to-Use-Transparent-Images-and-Labels-in-Window


推荐阅读