如何使用ImageMagick的命令覆盖Windows的转换命令?

22
在Windows操作系统中,有一个名为convert的命令用于转换文件系统。当您键入convert时,它会要求您指定一个文件系统。
而在ImageMagick中,convert命令用于图像处理。
问题是,即使设置了ImageMagick的环境变量convert,该工具也无法被调用,因为它只会调用Windows的convert命令。如何覆盖这个呢?
5个回答

41

这是一个老问题,但在ImageMagick 7中的当前解决方案是使用“magick”命令代替“convert”命令。


这也在此处提到:[链接](https://www.imagemagick.org/discourse-server/viewtopic.php?t=29582)。 - Foad S. Farimani

5

这是一个老问题,但我今天遇到了这个问题,在Windows 7中的解决方案如下。

Windows的convert.exe位于文件夹C:\Windows\System32中,所以您需要修改Windows PATH变量,将ImageMagick路径(例如C:\Libs\ImageMagick-6.8.8-4)放在加载System32路径(即%SystemRoot%\System32)之前。

这将导致所有ImageMagick可执行文件优先于任何同名系统可执行文件,这应该可以做到您想要的,但可能会导致意外的行为。

此外,当您想使用系统的convert.exe时,您必须指定完整的路径名,例如C:\Windows\System32\convert.exe


5

将 ImageMagick 中的 convert.exe 重命名对我很有帮助。

我不喜欢每次都使用完整路径,而且在我的工作电脑上更改系统 PATH 变量也是不可能的。

convert.exe 重命名为 imgconvert.exe 后,不需要进行其他更改。现在您可以从命令行中的任何地方使用新命令,而不会与内置的 Windows 文件系统 convert 混淆。


编辑:自版本7.0起,该命令现在为magick.exe,不再与任何本机Windows命令冲突。因此,如果可能的话,请下载最新版本解决问题。


1
我同意。我不会更改PATH变量以将非系统可执行文件放置在系统可执行文件之前,因为程序可能依赖于它。如果您不想重命名任何一个,请考虑创建符号链接,例如:mklink "C:\IM6-Path\convert-im6.exe" "C:\IM6-Path\convert.exe"。 - wensveen
1
是的。其他解决方案需要额外的工作(输入整个路径),或者在系统配置方面做一些混乱。这很简单明了。 - dgo
2
convert.exe在哪里(曾经在哪里)? - jessexknight

3

你是否注销并登录?

或者通过提供完整路径指定Imagemagick的convert。


1
谢谢。除了提供完整路径之外,还有其他方法吗? - vettipayyan
你是否验证了 http://www.imagemagick.org/script/resources.php 上列出的“环境变量”?同时请查看此链接 http://drupal.org/node/217960。 - abRao

1
在PowerShell中,您可以运行以下命令:$env:Path = "C:\path-to-convert\;$env:Path"现在,因为imagemagick转换exe首先出现在路径中,所以它能够被找到。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接