我将使用Wand来剪切图像的某些部分 . 图像具有透明背景 . 但在我删除部分之前,我首先要对源图像进行一些调整(而不是实际更改源文件) .
我想做的调整是:
-
将黑点更改为灰色,并将白点保持为白色
-
将所有颜色值缩放到新的灰色和白色范围
-
用100%黑色替换透明背景
-
将图像转换为灰度
我可以使用ImageMagick的简单命令获得所需的结果:
convert input.png +clone +level-colors gray,white -background black -alpha remove -colorspace Gray output.png
但是我如何使用Wand做到这一点?似乎没有办法从Wand应用级别颜色操作 . 也是这个问题的解决方案:Is there a -level function in wand-py没有't apply to my problem, I guess. Because it seems the magick image API doesn' t有一个水平颜色方法 .
效果的示例结果:
输入:
输出:
2 回答
既然你的输出图像是灰色的,你真的不需要
+level-colors
,你可以做同样的事情:另一种选择可能是使用
-fx
运算符 . 如果你想象你的像素亮度在0
(黑色)和1
(白色)之间变化,那么如果你将所有亮度除以2,它们将在0
和0.5
之间变化 . 然后,如果你添加0.5
,它们将在0.5
(中灰色)和1
(白色)之间变化 - 这是你想要的:-level-colors
行为可以通过wand.image.Image.level
方法应用,但需要为每个颜色通道执行 . 提供的两种颜色用作参考黑/白点 .例如...
对于
+level-colors
,只需反转黑/白点 .