【问题标题】:ImageMagick supported formats no valueImageMagick 支持的格式没有价值
【发布时间】:2013-02-23 03:07:23
【问题描述】:

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

在安装时,它已正确安装在我的机器上,convert 命令运行良好。在我的转换配置中显示的是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 我是从其他网站下载的。我不知道我在安装 imagemaagick 时遇到了什么问题,如果是 php_imagick.dll 版本的问题,任何人都可以为此配置建议适当的 php_imagick 版本吗?

【问题讨论】:

    标签: php windows imagemagick


    【解决方案1】:

    我花了几天的时间寻找解决方案,终于用 Sysinternals procmon 找到了。

    我发现 apache 正在 c:\windows\system 和 /bin 文件夹中寻找 IM_MOD_xxxx.dll 之类的 dll 文件。将文件复制到其中一个文件夹对我有用。

    祝你好运。

    【讨论】:

    • 这是正确的答案,因为它也适用于我。
    • 感谢您告诉我们! /apache/bin 对我有帮助
    • 我的imagick (3.2.0b2)版本文件夹中没有IM_MOD_xxxx.dll
    • 无视。它们位于具有 exe 的 ImageMagick 文件夹中 modules>coders 文件夹
    【解决方案2】:

    并非所有版本的 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 天,发现我在 phpinfo NEEDS 中的 imagick 安装了相应的 ImageMagick 版本。那个时候,我安装了 ImageMagick 7.*,所以我降级并安装了较低版本。最后我让它工作了,看到支持的格式数量不是 0。
    • 二进制下载列表:imagemagick.org/download/binaries
    • 2020 年更新:扩展 v3.4.3 应与二进制 6.9 一起使用,但扩展 v3.4.4 应与二进制 7.0 一起使用
    【解决方案3】:

    自从在谷歌上寻找解决这个问题的第一个结果以来,我将添加一个对我有用的结果。来源: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 根目录有帮助,现在 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

    【讨论】:

    • 这为我节省了大量时间。正在拉我的头发。移动 coders/* 和 filters/* 就行了!
    【解决方案4】:

    检查一下

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

    已设置。

    【讨论】:

    • MAGICK_CODER_MODULE_PATH 而不是MAGICK_HOME
    【解决方案5】:

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

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

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

    【讨论】:

      【解决方案6】:

      那里有很多答案,因为这个程序和 PHP 的环境随着时间的推移发生了变化。

      我现在正在使用 PHP 7.1。起初,我像您所做的所有说明一样,到处复制 DLL。幸运的是,所需要的只是最新的 PECL 包和适用于您系统的 Imagick 的相应版本,这是棘手的部分。如果您想使用 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.ini 中启用了 imagick 扩展。它应该向您显示 PHP 扩展的 Imagick 版本。同样,如果路径中系统上的 Imagick 版本与 PHP 扩展显示的版本匹配,那么您应该会看到它从系统上版本 6 Imagick 的 DLL 中获得的支持格式列表。您不需要将它们复制到 apache bin 或其他任何地方,也不需要创建 MAGICK_HOME 文件夹。

      【讨论】:

        【解决方案7】:

        即使在正确安装了 imagick 和 imagemagick 之后,如果仍然无法正常工作,请检查您的 Apache 环境 PATH 变量。如果路径变量没有显示您的 ImageMagick innatallation 文件夹,很可能,请将其添加到 Windows 高级系统设置/环境变量/系统变量 -> PATH。

        重新启动 WAMP 服务器并检查 phponfo 以查看 Apache 环境 PATH 变量。

        【讨论】:

          【解决方案8】:

          我搜索了帖子并尝试了各种建议 - 花了几个小时。直到我尝试了这里的步骤,我才获得成功:https://mlocati.github.io/articles/php-windows-imagick.html(由 Codesmith 发布 - 我同意这些步骤很短,易于遵循)。我需要安装在 WAMP 上。

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

          【讨论】:

          • 欢迎来到 Stack Overflow。答案框仅用于问题的完整答案。此处不鼓励仅提供指向另一个站点的链接的答案 - 链接可能会随着时间的推移而失效。最好将其他页面中的重要细节添加到答案中并保留链接作为参考。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-09-06
          • 2014-03-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          相关资源
          最近更新 更多