ImageMagick支持的格式没有价值

时间:2013-03-07 18:48:40

标签: php windows imagemagick

我已从链接ImageMagick-6.8.3-7-Q16-x86-dll.exe安装了下载并安装http://imagemagick.org/script/binary-releases.php#windows,我使用的是Windows 7和PHP 5.3.8。

安装时,它已在我的机器中正确安装,convert命令可以正常运行。在我的转换配置中显示的是here

enter image description here

但是在我的phpinfo部分,我得到了:

  

ImageMagick支持的格式没有价值

我得到了像https://www.evernote.com/shard/s297/sh/12397c86-d016-4ca4-9415-fd541daeca39/2fc504bf5ddba5693efd3249402b2b5c这样的所有图像魔法值。

我不知道为什么它没有价值我已经在我的32位windows7机器上的php 5.3.8上安装了相同的ImageMagick-6.8.3-7-Q16-x86-dll.exe。 php_imagick.dll i从其他网站下载。我不知道我在安装imagemaagick时遇到了什么问题,如果是php_imagick.dll版本的问题可以有人为这个配置建议正确的php_imagick版本吗?

8 个答案:

答案 0 :(得分:6)

我花了几天时间寻找解决方案,最后我用Sysinternals procmon找到了它。

我发现apache正在文件夹c:\ windows \ system和/ bin中查找像IM_MOD_xxxx.dll这样的DLL文件。将文件复制到其中一个文件夹对我来说很有用。

Cood luck。

答案 1 :(得分:6)

并非所有版本的ImageMagick都适用于所有版本的php_imagick.dll。 Imagick扩展v3.4。*与ImageMagick 7. *一起不支持任何图像格式。当我降级到ImageMagick 6.9。*问题解决了。

在phpinfo的回声中,您可以看到需要哪个版本的ImageMagick。搜索“使用ImageMagick库版本的Imagick”和“使用ImageMagick版本编译的Imagick”(应该相同)。

二进制下载列表: https://www.imagemagick.org/download/binaries/

或旧版本: http://windows.php.net/downloads/pecl/deps/

在Windows上安装ImageMagick的分步说明: https://stackoverflow.com/a/28872879/2366136

答案 2 :(得分:4)

自从谷歌在寻找这个问题的解决方案时的第一个结果,我将添加一个适合我的解决方案。资料来源:http://forums.zend.com/viewtopic.php?t=2397#p15226

我遇到了PHP 5.6的问题,它识别了扩展但没有支持格式。 (http://windows.php.net/downloads/pecl/releases/imagick/3.1.2/

安装最新版本的imagemagick(带有动态库)并将DLL文件从imagemagickDir / modules / coders / *和imagemagickDir / modules / filters / *复制到imagemagick root帮助,现在imagemagick在调用php时正常工作。

不要忘记让IIS访问imagemagick文件夹。

编辑:

当IIS成功识别格式时,我遇到了兼容性问题。

PHP 5.6的工作组合:

http://windows.php.net/downloads/pecl/releases/imagick/3.2.0b2/
http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ImageMagick-6.8.8-9-Q16-x86-dll.exe

答案 3 :(得分:2)

检查

  
    

MAGICK_HOME = C:\ Program Files(x86)\ ImageMagick-6.8.8-Q16 \ modules \ coders

  

已设定。

答案 4 :(得分:1)

有很多答案,因为这个程序和PHP的格局随着时间的推移而发生了变化。

我现在正处于使用PHP 7.1的前沿。起初我像所有的指令一样在整个地方复制DLL。幸运的是,所有必要的是最新的PECL软件包和相应版本的Imagick for your system,这是一个棘手的部分。如果要使用PHP扩展,则不能使用最新的Imagick(编写本文时的版本7),直到扩展升级。 您必须在系统上安装与PHP扩展版本匹配的Imagick版本。

正如其他人指示的那样,download the latest PECL package for imagick代表您的PHP版本。由于我使用的是PHP 7.1的线程安全的x64版本,我想要3.4.3RC1包,这是目前我的PHP版本中唯一一个带有DLL的包。

在这些文件中,我只需要复制php_imagick.dll。接下来,转到http://windows.php.net/downloads/pecl/deps/并为您的系统下载最新的Imagick,此时可能是VC14,为此它似乎只需在系统上安装相应的C ++ Redistributable软件包上班。只需解压缩文件并将bin添加到路径中即可。同样,如果您有更新版本的Imagick,您将需要将其替换为此版本,因为这是可以与php扩展一起使用的版本。

此时,您应该能够重启apache并确认在phpinfo中启用了imagick扩展。它应该显示PHP扩展的Imagick版本。同样,如果您的路径中的系统上的Imagick是与PHP扩展显示的版本匹配的版本,那么您应该看到它从您的系统上的版本6 Imagick的DLL中获得的受支持格式列表。您不需要将它们复制到apache bin或其他任何地方,也不需要制作MAGICK_HOME文件夹。

答案 5 :(得分:1)

我有同样的问题,并尝试了一切。您需要 - 正如我所想 - 在您的系统上安装了ImageMagick来运行PHP的Imagick模块。您只需确保在CORE_RL_*目录中同时包含IM_MOD_* dll 以及 apache/bin dll,然后再包含php_imagick.dll php/ext目录。

我在Windows上通过XAMPP运行PHP 7.0.25 x86,这些说明非常简单和有用:

https://mlocati.github.io/articles/php-windows-imagick.html

答案 6 :(得分:0)

即使安装了imagick& imagemagick正确,如果它不工作,请检查您的Apache环境PATH变量。最有可能的是,如果路径变量未显示您的ImageMagick inatallation文件夹,请将其添加到Windows高级系统设置/环境变量/系统变量 - > PATH。

重新启动WAMP服务器并检查以查看Apache Environment PATH Variable的phponfo。

答案 7 :(得分:-1)

我搜索帖子并尝试了各种建议 - 几个小时。在我尝试这里的步骤之前,我没有取得成功:https://mlocati.github.io/articles/php-windows-imagick.html(由 Codesmith 发布 - 我同意这些步骤很简单,易于理解)。我的需要是在WAMP上安装。

此链接背后的页面介绍了如何确定要下载 Imagick ImageMagick 的正确版本。只需将三组文件提取到指定目录,在 php.ini 中进行更改,然后重新启动WAMP。我的代码只使用JPEG和PNG格式,因此基于格式的DLL,我只移动了那些。