在Windows服务器上启动ImageMagick进程失败,显示“找不到指定的模块”。

7

我正在使用ImageMagick将PDF文件转换为PNG。在Web API项目本地运行进程时,只要我以管理员身份运行Visual Studio,就可以正常工作。但是将解决方案移动到服务器时,ImageMagick进程会失败,并显示以下错误:

convert.exe: 无法加载模块 `C:\Program Files\ImageMagick-6.9.0-Q16\modules\coders\IM_MOD_RL_PNG_.dll':指定的模块无法找到。

我已在服务器上安装了ghostscript和ImageMagick。这可能是什么原因?我可以验证该模块确实存在于服务器上。

6个回答

7
在我的情况下,解决这个问题的方法是在调用进程的代码中直接设置ImageMagick的环境变量。
System.Environment.SetEnvironmentVariable("Path", @"C:\Program Files\ImageMagick-6.9.0-Q16");

显然,即使服务器上设置了环境变量,由于运行时不同,它可能无法找到该变量。


3

在我的情况下,在安装完Imagemagick之后,我遇到了类似的错误(无法加载模块)。 帮助我的方法很简单:

重新启动系统

这可能是因为PATH系统变量或类似内容需要生效。


天啊... 花了好几个小时来排除这个错误,谢谢。我认为ImageStick中的这些错误太离谱了。 - Unicco

2
在我的情况下,我能够使用便携版解决这个问题,因为所有内容都嵌入在exe文件中,不需要查找任何东西。

谢谢,便携版非常好用,可以在其他应用程序中调用ImageMagick(不仅仅是在命令行中)。 - Candice

0
如果您刚刚安装了ImageMagick并尝试从命令行运行它,那么您需要打开一个具有更新的%PATH%环境变量的新命令行窗口。
您可以尝试使用SETX,但是打开一个新的命令行窗口似乎更容易。

0

重新启动您的Visual Studio或任何IDE(甚至是命令提示符,关闭并再次打开它们)。

在我的情况下,系统路径未更新,导致出现此错误。


0

Imagemagick能用来找libpng吗?它是否已经安装?你是调用ImageMagick的convert.exe还是Windows的convert.exe?

convert.exe -version

在代表列表中应该显示PNG吗?你从那个命令中找到了什么?


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