imagemagick - 将 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 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 等效编码的内容。第二个命令是您请求的命令。我希望这对你有用。
推荐阅读
- java - 显示图像计数器
- javascript - 如何使用表外的搜索过滤器?
- nginx - 如何在 proxy_pass 中正确使用 nginx try_files?
- matlab - 在检测到的对象周围绘制矩形?
- docker - 无法在 Mesosphere DC/OS 上旋转 dockerized cassandra 集群
- c++ - Specification of lambda's return value doesn't work
- variables - 如何将值从提交传递到 GitLab CI 管道作为变量?
- python-3.x - 如何在python中删除数据框中的初始行
- ansible - 在运行时指定主机凭据 Ansible
- python - 当我尝试为 scikit-learn 模型拟合另外 1 个功能时,出现此错误“ValueError:找到样本数量不一致的输入变量”