gpt4 book ai didi

OSX 上的 PHP-Imagick,ImagickException : NoDecodeDelegateForThisImageFormat `/my-path/file.jpg' @ error/constitute. c/ReadImage/550

转载 作者:行者123 更新时间:2023-12-02 04:58:34 25 4
gpt4 key购买 nike

我的环境是:MacOSX 10.8.3、PHP 5.3.17、ImageMagick 6.8.0、Apache 2.2.22

我已经使用 macports 安装了 ImageMagick 和 PHP-Imagick 模块。

ImageMagick 按预期工作,例如,我可以使用控制台命令 convert/my-path/file.jpg file.gif 将 JPG 转换为 GIF。

但是,当我使用如下示例代码创建一个新的 Imagick 实例时:

<?php
$m = new Imagick('/my-path/file.jpg');

我得到异常:

NoDecodeDelegateForThisImageFormat `/my-path/file.jpg' @ error/constitute.c/ReadImage/550

文件的格式不会改变结果;我测试了不同的 JPG、GIF 和 PNG 图片,但出现了同样的异常。

所以我怀疑 PHP/Apache - ImageMagick 集成部分有些问题。

我看到了this post on SO并应用给定的分辨率(将环境变量“MAGICKCODERMODULE_PATH”添加为值“/opt/local/lib/ImageMagick-6.8.0/modules-Q16/coders”)但这对我的情况没有意义。 (我从我的phpinfo中确认了这个环境变量的存在)

我系统上一些命令的输出:

我将不胜感激任何建议。

Apache Configuration, Environment and PHPImagick Configuration

最佳答案

解决方案

chmod 755 /opt

见解与思考

最后。我设法解决了这个问题。

由于SO没有答案和建议;我并不感到惊讶,这是意外造成的!..

@sathia 建议定义一个环境变量来调用 ImageMagick 二进制文件。但是在我的例子中,我需要使用 phpImagick 扩展并通过它的 API 访问 ImageMagick,所以这个建议没有意义。

但我想尝试一下,使用 PHP 的 system 函数调用 ImageMagick 的转换二进制文件。调用后得到返回值“126”;而 126 表示,找到了二进制文件,但它不可执行!..

我检查了/opt/local/bin/convert 中的二进制文件,它具有适当的执行权限,然后我检查了/opt/local/bin 和/opt/local 目录,它们也是可执行的。然而问题是 /opt 文件夹的权限是 700!

我设法执行了 chmod 755/opt 并且神奇地错误消失了。

关于OSX 上的 PHP-Imagick,ImagickException : NoDecodeDelegateForThisImageFormat `/my-path/file.jpg' @ error/constitute. c/ReadImage/550,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17501324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com