调用imagemagick转换出python脚本失败

时间:2016-09-25 18:51:12

标签: python imagemagick

我想使用imagemagick从产品图片中删除背景。该命令是convert "C:\Users\andi\Desktop\T-Shirts\input.jpg" -alpha set -channel RGBA -fuzz 20% -fill none -floodfill +0+0 white "C:\Users\andi\Desktop\T-Shirts\input.jpg-freeTee.png",如果从dos框中调用,它可以正常工作。

当它从python脚本调用时,我收到以下错误消息:

is file: C:\Users\andi\Desktop\T-Shirts\input.jpg
call: convert "C:\Users\andi\Desktop\T-Shirts\input.jpg" -alpha set -channel RGBA -fuzz 20% -fill none -floodfill +0+0 white "C:\Users\andi\Desktop\T-Shirts\input.jpg-freeTee.png"
convert.exe: unable to open image `"C:\Users\andi\Desktop\T-Shirts\input.jpg"': Invalid argument @ error/blob.c/OpenBlob/2705.
convert.exe: unable to open module file `C:\Program Files\ImageMagick-6.9.5-Q16\modules\coders\IM_MOD_RL_JPG"_.dll': No such file or directory @ warning/module.c/GetMagickModulePath/676.
convert.exe: no decode delegate for this image format `JPG"' @ error/constitute.c/ReadImage/504.
convert.exe: no images defined `"C:\Users\andi\Desktop\T-Shirts\input.jpg-freeTee.png"' @ error/convert.c/ConvertImageCommand/3257.

C:\Users\andi\Desktop\T-Shirts>

当然,我检查了存在的文件C:\Program Files\ImageMagick-6.9.5-Q16\modules\coders\IM_MOD_RL_JPG"_.dll

我用imagemagick 6.9.5和7.0.3尝试过。在版本7中,我使用遗留convert和新magick命令尝试了它。

用于调用imagemagick的python代码是:

def freeTheTee(file):
    inkscape_dir=r"C:\Program Files\ImageMagick-6.9.5-Q16"
    assert os.path.isdir(inkscape_dir)
    os.chdir(inkscape_dir)
    from subprocess import call
    print "call: " + " ".join(["convert", "\"" + file + "\"", "-alpha", "set", "-channel", "RGBA", "-fuzz", "20%", "-fill", "none", "-floodfill", "+0+0", "white", "\"" + file + "-freeTee.png\""])
    call(["convert", "\"" + file + "\"", "-alpha", "set", "-channel", "RGBA", "-fuzz", "20%", "-fill", "none", "-floodfill", "+0+0", "white", "\"" + file + "-freeTee.png\""])

要调用python脚本,我使用一个简短的批处理文件,在那里我删除我的文件进行转换:

start cmd /k call c:\Python27\python.exe "%~dp0\FreeTheTee.py" %*

这将打开一个新的dos框,其中python脚本运行并失败。当我现在复制出脚本的输出(这是该帖子中的第一个命令)时,将其粘贴到相同的dos框中并执行它,然后imagemagick正在成功进行转换。这种情况发生在Windows中。我首先在Mac上开发了这个脚本,它就像魅力一样。

有什么想法吗?

编辑:使用更简单的文件名,以确保它不是“与文件名相关的空格”

0 个答案:

没有答案