0

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

我有 Python 代码(在 Pyramid Web 框架应用程序中,但这应该无关紧要),它获取捕获的图像 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 [] 
4

1 回答 1

0

我认为您以错误的方式混合了listina。imp已经是一个列表,您将其放入[]通话中check_call。所以你得到一个列表中的列表。Additionalytfile是一个不能连接到列表的字符串,但这应该作为 TypeError 异常可见。我发现了第三个问题;您将 outfile 作为字符串连接到 outfile,因此第二个进程将没有有效的输入和输出文件。

于 2013-03-06T12:46:22.913 回答