c# - WPF C#捕获具有半透明背景的画布图像
问题描述
更新:不是重复的。
我的问题不是如何截屏。我知道这一点,但这不是我需要的。我可以让其他人控制画布,我不想捕捉它们,而只是捕捉画布中的图像,图像在画布下透明可见。
我需要在不透明度为 50% 的画布上捕获图像,但捕获的图像具有黑色背景,而不是背景中的图像(桌面)。
我使用此代码来捕获图像:
MemoryStream ms = new MemoryStream();
RenderTargetBitmap rtb = new RenderTargetBitmap(1920, 1080, 96d, 96d, PixelFormats.Default);
rtb.Render(canvasCapture);
BmpBitmapEncoder BmpEncoder = new BmpBitmapEncoder();
BmpEncoder.Frames.Add(BitmapFrame.Create(rtb));
BmpEncoder.Save(ms);
这是画布:
<Canvas x:Name="canvasCapture" Background="#7F0F0F0E" />
在我的应用程序中,我可以在画布下看到透明的桌面,但捕获的图像具有黑色背景。如何在应用程序中捕获具有背景的图像?
解决方案
位图图像不支持透明背景。它会自动用黑色填充透明区域。您可以尝试将图像保存并使用为 PNG。
推荐阅读
- java - 线程运行时按钮 onClick() 不起作用
- crystal-reports - 上传到 .csv 时字段格式不成立
- android - Json 字符串 java bean 对象
- python - 在 TensorFlow 中实现简单的 PPO 代理
- twitter-bootstrap - 在导航项中单击时折叠引导导航栏。在移动视口中
- node.js - 如何使用打字稿扩展快递对象?
- javascript - 异步/等待。解析错误:await 是保留字。JS
- python-3.x - 从 Pandas Agg 绘制阴影误差条
- vba - VBA计数如果为空/空白并在顶行输出 - 循环列数组
- testing - 检查 Windows 身份验证的测试用例