如何使用 C# 在画布上的 WPF 中绘制透明 PNG

Posted

技术标签:

【中文标题】如何使用 C# 在画布上的 WPF 中绘制透明 PNG【英文标题】:How do I draw a transparent PNG in WPF on a canvas using C# 【发布时间】:2020-02-09 04:29:06 【问题描述】:

这似乎没有答案。我有一个白色背景的 png(“Blue Arrow.png”)。我想在 X,Y 位置的画布上绘制它,旋转 R,白色背景是透明的。

有人可以指出我正确的方向吗?谷歌他们什么都没发现。

【问题讨论】:

您要问的是所谓的颜色键。传统上,您会使用洋红色 (0,255,255),但任何颜色都可以。不幸的是,WPF 没有内置支持,但您可能可以在某处找到颜色键位图的实现。更简单的解决方案是修改您的 .png 文件以使用 alpha 通道来实现透明度。 GIMP 是一个可以做到这一点的免费程序。 【参考方案1】:

在 WPF 中没有直接的方法来删除 PNG 的背景并使其透明。从具有透明背景的 PNG 开始会容易得多。

即使您找到一个可以进行颜色键控/替换的外部库,质量也不会像从正确的 PNG 开始那样好。

【讨论】:

谢谢。找到一个在线程序来设置透明颜色。在哪里可以找到将位图放置在画布上特定 X、Y 位置的代码? 如果您想通过代码来实现,请查看此问题/答案:***.com/questions/21635892/… 谢谢!非常感谢。 如何指定在画布上绘制图像的 X、Y 位置?我找不到任何方法来设置绘图位置坐标。

以上是关于如何使用 C# 在画布上的 WPF 中绘制透明 PNG的主要内容,如果未能解决你的问题,请参考以下文章

如何使用drawImageRect设置绘制到画布上的图像的不透明度?

如何让用户在 WPF 中使用画布绘制线条

在画布上的图像不透明部分周围绘制边框

动态数据显示 - WPF - 需要将文本添加到画布 - C#

如何使用html5画布元素绘制透明图像

C# WPF 可拖动用户控件在 Canvas 上的 ListBox 中