如何在.NET中以编程方式着色图像的透明部分

5
我有一张手动创建并保存为文件的图像,其中有一个形状(例如心形)在图像中是透明的,而图像的其余部分具有其他颜色。如何在.NET中以编程方式使透明形状具有指定的颜色,同时保留图像的其余部分不变?
例如,提供了一张图片,我想用颜色填充透明部分。

http://www.sendspace.com/file/an53a1

2个回答

5

这是透明的。因此,您需要使用Graphics.Clear()先用所需颜色绘制背景,然后使用Graphics.DrawImage()绘制图像。


使用这种方法,他将填充所有透明的部分...这对他的需求不好,如果您下载图像,您会发现无论是从心脏外面还是里面都是透明的... - Marino Šimić
感谢Hans Passant和Marino Šimić的建议。有没有办法用不同的颜色填充不同的透明部分?例如,心形内部使用一种颜色,心形外部使用另一种颜色。 - Pingpong
糟糕的托管服务,不要考虑。好的,使用Graphics.FillRectangle进行背景绘制。当然,无论你使用哪种方式,你都必须知道心脏的位置。 - Hans Passant
填充不同部分以不同颜色的方法称为“泛洪填充”,请看那篇 CodeProject 文章……遗憾的是这不是一项易事。 - Marino Šimić
我想将这两个答案设置为答案,但这是不允许的。 - Pingpong

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接