0

OS Ubuntu 12.04正確、python 2.7.3、ピラミッドWebフレームワーク、IM 6.4.7-1

キャプチャされた画像capture.jpgを取得し、その画像に対して2つのImageMagickプロセスを実行する必要があるPythonコード(Pyramid Web Frameworkアプリケーション内にありますが、これは関係ありません)があります。1つ目は、画像にラベルを付けるための変換(機能)、2つ目は、画像とラベルに透かしを適用するための合成(機能しない)です。最初は、イメージの準備ができていないために2番目の操作がサイレントに失敗したと思いましたが、待機タイマーを追加すると、そうではないことを示します。両方の操作を組み合わせる方法について何か考えはありますか?これらを1つのシェルコマンドに結合することはできません。

    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

私はあなたがlistsinaを間違った方法で混ぜていると思います。impはすでにリストであり、あなたはそれを通話に入れ[]ました。check_callしたがって、リストにリストが含まれます。さらにtfile、リストに連結できない文字列ですが、これはTypeError例外として表示されるはずです。そして私が見つけた3番目の問題。outfileを文字列としてoutfileに連結するため、2番目のプロセスの有効な入力ファイルと出力ファイルはありません。

于 2013-03-06T12:46:22.913 に答える