在c#,wpf中动态着色图像的某些区域

时间:2017-03-21 08:40:50

标签: c# wpf image

我正在用C#制作运动管理游戏 - WPF。 我有一个戴着帽子和衬衫的人的模板图片,代表一个玩家。

我想动态重新着色球员所穿的衬衫和帽子,这取决于他所效力的球队。 Team对象有2个Color变量,一个Primary& Secundary颜色。

现在我使用了一个编辑Bitmap对象的Flood Fill算法。之后我需要将位图转换为Imagesource。

整个事情需要相当多的代码并且相当完整,我现在怀疑我是否真的以“正确”的方式做到这一点,或者是否有更好的方法来实现我的初始目标,即着色服装匹配团队的颜色。

(我遇到的另一个问题是如果我开始使用更多渐变模板 - 例如阴影 - 而不是平面颜色,洪水填充也有点复杂)

1 个答案:

答案 0 :(得分:1)

您应该看看是否可以使用矢量图形和WPF Path对象,而不是使用像位图这样的光栅图像。

有关Path数据的详细信息,请参阅MSDN:https://msdn.microsoft.com/en-us/library/ms752293(v=vs.110).aspx

这样,您只需更改XAML Binding绑定的基础数据对象,即可使用Path更改单个装备View服装项目对象的颜色。使用Path对象的另一个好处是,因为它是矢量数据,所以无论你的游戏运行的分辨率如何,图像都会在没有像素化的情况下进行缩放。