错误"无效参数"fom ImageMagick在Windows上转换

rs.*_*rs. 17 windows asp.net imagemagick

我正在尝试使用ASP.NET网站上的ImageMagick命令行工具将PDF文档转换为PNG文件.我创建一个新的shell进程,并执行以下命令:

convert -density 96x96 "[FileNameAndPath].pdf" "[FileNameAndPath].png"
Run Code Online (Sandbox Code Playgroud)

当使用VS的ASP.NET开发服务器在本地计算机上测试网站时,这很好用,并且在手动输入shell时该命令也可以正常工作.从ASP.NET中以编程方式创建的shell运行时,会出现以下错误消息:

Invalid Parameter - 96x96
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会这样,怎么办?

我在使用与ASP.NET进程不同的用户帐户通过RDP登录服务器时测试了该命令.我使用了与本地计算机完全相同的ImageMagick和Ghostscript安装文件,并在安装过程中激活了将ImageMagick安装路径添加到环境变量中.服务器从未重启过.

Sal*_*n A 51

convert也是将FAT文件系统转换为NTFS的Windows可执行文件的名称.如果未指定可执行文件的完整路径,请引用:

...系统首先搜索当前工作目录,然后搜索路径环境变量,从左到右检查每个目录,查找与给定命令名称匹配的可执行文件名.

"C:\ Windows\System32"通常出现在%PATH%变量的开头,导致Windows转换实用程序启动,失败并出现"无效参数"错误.

尝试指定ImageMagick的convert.exe的完整路径,如下所示:

"C:\Program Files\ImageMagick\convert.exe" -density 96x96 "path_and_filename.pdf" "path_and_filename.png"
Run Code Online (Sandbox Code Playgroud)

  • 在最近的版本中,您必须在转换之前添加 magick,例如 magick convert -density 96x96 "[FileNameAndPath].pdf" "[FileNameAndPath].png" (5认同)
  • 我刚安装了最新版本,它看起来像'magick.exe'. (4认同)
  • 我的C:\ Program Files\ImageMagick \不包含convert.exe.有没有人知道在imagemagic的新版本中指向什么exe? (2认同)

dag*_*rha 7

正如其他人指出的那样convert,您指向PATH中的另一个程序。而是以开头命令magick。因此,您的命令将改为:

magick convert -density 96x96 "[FileNameAndPath].pdf" "[FileNameAndPath].png"
Run Code Online (Sandbox Code Playgroud)

  • magick Convert 是 ImageMagick 7 的不正确语法。仅使用 magick,而不使用 magick Convert 和不转换。后两者将提供 IM 6 行为 (3认同)

Ola*_*laf 6

在 Window 中实际上在 system32 中存在一个“convert.exe”——确保你的脚本没有启动那个(可能你的开发机器上的环境路径设置不同)。


Rec*_*ive 5

我这么晚才回答,因为 imagemagick 已更新。现在,如果您想使用“转换”命令,您可以这样做:

magick convert "image.png" "document.pdf"
Run Code Online (Sandbox Code Playgroud)

或者

magick convert "image_00*.png" "document.pdf"
Run Code Online (Sandbox Code Playgroud)

对于多个图像。

命令语法相同,只需magick在其前面添加