首页 > 解决方案 > 如何使用此图像上的颜色蒙版简单地替换颜色然后保存?以 RGBA 通道为例

问题描述

所以我在这里得到了这个GIF:

如您所见,它有红色、绿色和蓝色。它还具有完全的透明度。这是与 FFMPEG 一起由看起来完全一样的图像组成的。

 

然后,通过 FFMPEG,我使用过滤器“extractplanes”“分解”了 RGB 和 Alpha 通道。

可以在此处找到从上到下的正确顺序的画廊:

https://imgur.com/a/WN0aGuW

我不确定这是否真的对我有帮助,或者我是否应该分解它们。因为现在看来,在分解它们之后,我应该修改它们,但我不确定如何。这就像我如何修改只有黑色和白色的红色通道,所以最后都将匹配我想要的指定 HEX 颜色。

 

现在,我的问题是。我如何准确地使颜色变化发生?我可以简单地用 JavaScript 做到这一点吗?如果可能没有 ImageMagicks,是否可以使用 FFMPEG?也许是一种不需要太多安装的编程语言?

我的理解是这样的。这些通道基本上包含从 0 到 255 的黑白值。我认为“亮度”是 0 和 255。所以介于两者之间的东西会像灰色。

所以基本上,就像我们对红色做 (255,0,0) 一样。在这些通道中,如果我想要红色的某个地方,我需要在红色通道上放置一个全白像素,而在所有其他通道上,必须有一个全黑像素。

就是这个概念。现在的问题是,我该怎么做?

 

最后,我想让它看起来像这个颜色,例如:

这是来自一个游戏。所以基本上这就是它在游戏中的样子。并且游戏文件只使用这些 RGBA 模板精灵。

 

我在这里问了一个类似的问题:How to change colour of an image of an image using RGBA and more channels independent of their color

但不知何故,我似乎没有解释得那么好。

 

我在这里做了一个东西来测试。我想这几乎接近了,但线条有点奇怪。jsfiddle.net/qsgazubk

标签: javascriptimageffmpegcolorsimage-manipulation

解决方案


推荐阅读