第二个ImageMagick进程在Python中失败

第二个ImageMagick进程在Python中失败,python,pyramid,imagemagick-convert,Python,Pyramid,Imagemagick Convert,操作系统Ubuntu 12.04 precise,python 2.7.3,金字塔网络框架,IM 6.4.7-1 我有Python代码(在一个金字塔Web框架应用程序中,但这应该是无关的),它获取一个捕获的image capture.jpg,然后需要对该图像执行两个ImageMagick进程。第一种是转换为标记图像(有效),第二种是合成,在图像和标签上应用水印(无效)。起初,我认为第二个操作由于映像未准备好而悄无声息地失败,但添加等待计时器表明情况并非如此。你知道如何将这两种操作结合起来吗?它们

操作系统Ubuntu 12.04 precise,python 2.7.3,金字塔网络框架,IM 6.4.7-1

我有Python代码(在一个金字塔Web框架应用程序中,但这应该是无关的),它获取一个捕获的image capture.jpg,然后需要对该图像执行两个ImageMagick进程。第一种是转换为标记图像(有效),第二种是合成,在图像和标签上应用水印(无效)。起初,我认为第二个操作由于映像未准备好而悄无声息地失败,但添加等待计时器表明情况并非如此。你知道如何将这两种操作结合起来吗?它们不能合并到一个shell命令中

    now = datetime.datetime.utcnow()
    inpfile = "/home/brian/capture.jpg"
    tfile = "/home/brian/watermark.png"
    label = ("SN7 %s" % now.strftime("%Y%m%d%H%M%S")) 
    outfile = ("/home/brian/%s" % now.strftime("CAM_%Y%m%d%H%M%S") + ".jpg")
    args = []
    args += ["-background", "White"]
args += ["-pointsize","42"]
    args += ["label: "+ label]
    args += ["-gravity", "Center"]
args += ["-append"]
subprocess.check_call(["convert",inpfile] + args + [outfile])
time.sleep(5)
imp = []
imp += ["-dissolve", "25"]
imp += ["-gravity", "South"]
subprocess.check_call(["composite"] + [imp] + tfile + outfile + outfile)
    return [] 

我认为你弄错了
imp
已经是一个列表,您将其放置在
check\u call
中的
[]
中。所以你得到了一个列表中的一个列表。 另外,
t文件
是一个不能连接到列表的字符串,但这应该作为TypeError异常可见。
我发现了第三个问题;将outfile作为字符串连接到outfile,因此第二个进程将没有有效的输入和输出文件

为什么不能在一次通话中合并?参数是否根据第一个结果动态更新?另外,我们可以假设您的流程在命令行上运行良好吗?最后,第二个子流程的错误代码是什么?如果没有,那么
composite
就完成了它的工作,只是不是你所期望的那样。谢谢@krase。是的,这个过程在命令行上运行得很好。而且它们不能在一次通话中合并。原来解决方案是使用subprocess.call而不是subprocess.check_调用,原因我还不完全明白。工作代码:inpfile=args=[]args+=[“-background”,“White”。。。args+=[“-append”]子流程。调用([“转换”,inpfile]+args+[outfile])imp=[]imp+=[“-dissole”,“25”]imp+=[“-gravity”,“South”]子流程。调用([“复合”]+imp+[tfile]+[outfile]+[outfile])