混合颜色替换

Posted

技术标签:

【中文标题】混合颜色替换【英文标题】:Blended color replacement 【发布时间】:2014-09-22 07:36:57 【问题描述】:

我不确定这里的术语,所以我将举例说明。我有一个像这样的图标图像:

即具有单一色调以及黑白的 alpha 混合图像。我希望能够以编程方式对特定颜色进行颜色替换,但保留混合。

例如:

var blueCar = ColorReplace(redCar, Color.Blue);

生产:

你明白了!我想使用特定的目标颜色而不是像 Photoshop / Paint.NET 那样更改 HSL。

我将为此使用 C#,最好是 GDI+,但如有必要,我愿意使用其他免费库。

【问题讨论】:

这将是一个多步骤的过程。首先,您需要确定基本图标颜色,接下来您需要从图标中“取消混合”纯色。一旦你有了它,你就可以替换新颜色了。 基本颜色将始终相同 - 红色。这是我遇到问题的颜色替换。 【参考方案1】:

我认为您必须逐个像素地更改图像,如CodeProject 所示,尽管这已经相当老了。 Sayse 为位图 here 创建了某种可能有用的扩展。

【讨论】:

扩展似乎是一对一的替换(例如#FF0000 到#0000FF),它不适用于源图像中不同深浅的红色)。我会查看 CodeProject 文章。

以上是关于混合颜色替换的主要内容,如果未能解决你的问题,请参考以下文章

Photoshop的混合模式

OpenGL 混合功能

OpenGL 四 - 002OpenGL 图形渲染之颜色混合

在混合python numpy数组中搜索和替换[关闭]

png图片如何整体换颜色app

输入输出流和String的混合使用-替换信息