c# - 如何从 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 他们有透明背景)。
如何使它们始终具有透明背景?
解决方案
如果你的显示技术是 WinForms,答案是:你不能真的。WinForms 已经有几十年的历史了,以支持显示端的适当透明度。
Windows 窗体非常擅长伪装透明度,但不是那么好:https ://www.codeproject.com/Articles/25048/How-to-Use-Transparent-Images-and-Labels-in-Window
推荐阅读
- java - 有没有办法用“限制性 API”实现构建器模式而不会太冗长
- android - firebase 函数输出(日志)与模拟器输出不同
- linux - Photon OS 4.0 作为 kubernets 节点 - 端口 10250 问题
- python - Pandas 在读取 .csv 文件时舍入高值
- vue.js - 作为道具传递的渲染组件
- css - flex-basis 的 auto 和 content 值有什么作用
- node.js - 在 Node.js 中合并多个二进制文件
- python - 迭代函数每次都会覆盖数据帧
- sql - 删除记录后 Postgres 查询变慢
- aws-amplify - 如何为公共访问与系统访问设置身份验证