【问题标题】:Dynamically color certain areas of image in c#, wpf在c#,wpf中动态地为图像的某些区域着色
【发布时间】:2017-03-21 08:40:50
【问题描述】:

我正在用 C# - WPF 制作体育管理游戏。 我有一个戴着帽子和衬衫的人的模板图像,代表一名球员。

我想根据他效力的球队动态地重新着色球员所穿的衬衫和帽子。 Team 对象有 2 个颜色变量,一个主要颜色和次要颜色。

现在我使用了一种用于编辑位图对象的填充算法。之后我需要将位图转换为 Imagesource。

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

(我遇到的另一个问题是,如果我开始使用更渐变的模板(例如阴影而不是纯色),泛光填充也会有点复杂)

【问题讨论】:

  • 我建议测试色调变化的能力(这样你就可以在“模板”位图上产生阴影)。然而,这也意味着将位图分成两种(主要颜色和次要颜色),并且仅在色调改变后合并它们。您可以使用paint.net(有一个不错的滑块)测试位图上的色调变化。如果你喜欢它,你可以使用这里的代码:stackoverflow.com/questions/3837449/…希望它有帮助!

标签: c# wpf image


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2018-09-06
    • 2012-09-25
    • 1970-01-01
    相关资源
    最近更新 更多