将 ColorToAlpha 精确复制到 MagickCore

Exactly replicating the ColorToAlpha to MagickCore

所以我一直在尝试在 MagickCore C API 中获得类似 GIMP 的 Color-To-Alpha。但是我一直面临一些问题。我试着看弗雷德的剧本 它并没有真正准确地复制 GIMP 的 Color To Alpha,因为它正在计算差异但似乎与 GIMP

不一样 minimizing/maximizing

基本上,这是公式original_pixel = required_pixel*alpha + color_made_into_alpha*(1-alpha)。我知道每个像素的 alpha,我也知道原始颜色和 alpha 颜色,所以我想知道满足它的 required_pixel 应该是什么。基本上,required_pixel = (original_pixel - alpha_color_pixel)/alpha + alpha_color_pixel。我需要在图像中有效地使用它。使用 fx 没有太大帮助 我将不胜感激建议

这似乎对我适用于下图,但您必须使用 ImageMagick 7 或为 HDRI 编译 ImageMagick 6。

magick rgb.png -alpha off \
\( -clone 0 -fill "red" -colorize 100 \) \
-compose difference -composite \
-separate -evaluate-sequence max \
alpha.png


magick  rgb.png -write mpr:img \
\( +clone -fill red -colorize 100 -write mpr:color \) \
+swap -define compose:clamp=off -compose minus -composite +write t1.png \
alpha.png +swap -compose divide -composite +write t2.png \
mpr:color -compose plus -composite +write t3.png \
alpha.png -alpha off -compose copy_opacity -composite \
rgb_fred.png


我在 GIMP 中得到了完全相同的结果

但是将第一个命令更改为您为 GIMP 等价物编写的代码。第二个命令是您请求的命令。我希望这对你有用。