使用 ImageMagick 进行转换 - 非法参数

Converting with ImageMagick - illegal parameter

我正在尝试将 PDF 转换为 JPG,主要目标是有一个缩略图,以便用户可以在应用程序中预览 PDF。

显然 ImageMagick 是一个很好的方法,但到目前为止我没能用它来转换文件。

import subprocess

params = ['convert', '-density 300 -resize 220x205', 'dummy.pdf', 'thumb.jpg']
subprocess.check_call(params)

这就是我得到的结果,而不是转换文件:

Unzulässiger 参数 - 300 追溯(最近一次通话): 文件 "pdf_preview_test.py",第 4 行,位于 subprocess.check_call(参数) 文件 "C:\Users\EliasMessner\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py",第 347 行,在 check_call 中 引发 CalledProcessError(retcode,cmd) subprocess.CalledProcessError: 命令'['convert', '-density 300 -resize 220x205', 'dummy.pdf', 'thumb.jpg']' 返回非零退出状态 4.

我找不到有关该问题的任何信息。看起来“300”参数是非法的,但恕我直言,它使用正确。帮助将不胜感激。谢谢

当您在 Windows 上时,代码可能正在尝试内置的 Windows 转换程序。您没有说明您使用的是 Imagemagick 上的哪个版本; V7 使用 magick 而不是 convert 可以防止这个问题。

如果您允许 Imagemagick 在安装时将 convert 添加到环境路径,这可能不是问题 - 它对我来说从来没有多次安装。

您可以尝试将 convert 更改为完整路径,以围绕“ ”中的路径进行转换。您可以重命名转换程序,例如myconvert 并在程序中使用它而不是转换。

我会先在命令行中尝试 Imagemagick 命令以证明它也能正常工作。