首页 > 解决方案 > 将 ColorToAlpha 精确复制到 MagickCore

问题描述

所以我一直试图在 MagickCore C API 中获得类似 GIMP 的 Color-To-Alpha。但是我一直面临着一些问题。我试图查看 Fred 的脚本它并没有真正将 GIMP 的颜色复制到 Alpha,因为它正在计算差异,但似乎不像 GIMP 那样做同样的最小化/最大化

基本上,这就是公式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

解决方案


这似乎对我有用以下图像,但您必须使用 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 等效编码的内容。第二个命令是您请求的命令。我希望这对你有用。


推荐阅读