Python脚本中的ImageMagick代码

Python脚本中的ImageMagick代码,python,operating-system,imagemagick,Python,Operating System,Imagemagick,我需要转换一个图像,因为它只将蓝色显示为一个blob,有没有办法在python脚本中运行此代码?或者我该怎么做呢 下面的代码完成了这项工作,但我不知道如何将其链接在一起, 新的代码,任何建议,方向,链接等将不胜感激 后消毒 sudo convert imgIn.jpg-posterize 2 imgOut.jpg 转换为blob sudo convert imgIn.jpg-matte\(+clone-fuzz 57%-不透明黑-透明蓝\)-compose DstOut-composite im

我需要转换一个图像,因为它只将蓝色显示为一个blob,有没有办法在python脚本中运行此代码?或者我该怎么做呢

下面的代码完成了这项工作,但我不知道如何将其链接在一起, 新的代码,任何建议,方向,链接等将不胜感激

后消毒
sudo convert imgIn.jpg-posterize 2 imgOut.jpg

转换为blob
sudo convert imgIn.jpg-matte\(+clone-fuzz 57%-不透明黑-透明蓝\)-compose DstOut-composite imgOut.jpg

您可以使用,将参数作为列表传递:

from subprocess import  check_call

check_call(["sudo","convert","imgIn.jpg", "-posterize","2","imgOut.jpg"])

check_call([ "sudo",'convert', 'imgIn.jpg', '-matte', '(', '+clone', '-fuzz', '57%', '-opaque', 'black', '-transparent', 'blue', ')', '-compose', 'DstOut', '-composite', 'imgOut.jpg'])
您必须使用sudo运行脚本,如果您想传递密码,也可以使用Popen将密码写入stdin:

from subprocess import Popen, PIPE

p1 = Popen(["sudo", "-S", "convert", "imgIn.jpg", "-posterize", "2", "imgOut.jp"], stdin=PIPE, stdout=PIPE)

p1.stdin.write("password\n")
out, err = p1.communicate()

实际上,Python有几个ImageMagick API绑定,我建议使用其中一个。举个例子,这里是Wand:使用一个API,或者简单地使用子流程感谢您的快速响应。Padraic,我能请你给我看一些如何使用子流程实现这段代码的示例代码吗?所以你真的需要sudo吗?我不确定,这段代码还是很新的。这是我希望编写的程序的一个步骤,我有每个步骤所需的所有代码,我只是不知道如何将它们连接在一起。希望如果我能弄明白这一点,它将帮助我连接程序的其余部分。