ImageMagick:ImageCoderSignatureMismatch `miff'
ImageMagick : ImageCoderSignatureMismatch `miff'
我已经更新了我的 ImageMagick 版本及其 PHP 的绑定。
我已经安装了ImageMagick-7.0.4-9-Q16-x64,
和 php_imagick-3.4.3-7.0-nts-vc14-x64,
运行 在 PHP 7.0.10.
命令行似乎运行良好,因为我成功地执行了一个简单的 magick convert image.png -resize 50% imageSmall.png
。
问题是 PHP 脚本在 ImageMagick 6 上 运行 成功 8.x (我记不太清了),但不能用这个版本。
它给了我以下错误:
ImageCoderSignatureMismatch `miff': 210 != 610 @ error/module.c/OpenModule/1342
有时显示 Unable to set the image format
,我真的不知道为什么。
我发现在我的代码中哪里触发了这个错误:
public function init(){
var_dump('begin init fcrender canvas');
if($this->_canvas == null){
$this->_canvas = new Imagick();
/////// It's the following line :
$this->_canvas->newImage($this->_width, $this->_height, 'transparent', 'miff');
/////////////////////////////////
$this->_filename = 'image';
$this->_extension = 'png';
}
}
那么为什么会出现这个错误呢?谢谢你的帮助! :)
这意味着加载了错误的模块。 210 != 610
是 miff 模块的版本签名,因此预期 IM 7 是 miff 610
,但加载了 IM 6 的 210
。
有几个选项需要修复。
- 卸载所有 ImageMagick 6 资源。
- 将 ImageMagick 7 重新安装到一个独立的位置,并使用
$MAGICK_HOME
环境变量。
- 定义
MAGICK_CODER_MODULE_PATH
环境变量以更正模块路径。
更多信息@Resources documentation。
我认为 php_imagick 与 ImageMagick7.x.x 根本不兼容。
我下载并安装了我在这里找到的 ImageMagick6.9.3:http://windows.php.net/downloads/pecl/deps/
(要安装,我只是把C:\imagemagick\
里的文件夹,把"bin\"里的内容放在top-level里,放在C:\imagemagick\
里。
然后我复制了所有 CORE_RL_*.dll 到 C:\wamp64\bin\apache\apache2.4.23\bin\
.)
这在 PHP 7.0.10 中完美运行,imagick3.4.3 可在此处下载:https://pecl.php.net/package/imagick
谢谢大家的帮助!
我已经更新了我的 ImageMagick 版本及其 PHP 的绑定。
我已经安装了ImageMagick-7.0.4-9-Q16-x64, 和 php_imagick-3.4.3-7.0-nts-vc14-x64, 运行 在 PHP 7.0.10.
命令行似乎运行良好,因为我成功地执行了一个简单的 magick convert image.png -resize 50% imageSmall.png
。
问题是 PHP 脚本在 ImageMagick 6 上 运行 成功 8.x (我记不太清了),但不能用这个版本。
它给了我以下错误:
ImageCoderSignatureMismatch `miff': 210 != 610 @ error/module.c/OpenModule/1342
有时显示 Unable to set the image format
,我真的不知道为什么。
我发现在我的代码中哪里触发了这个错误:
public function init(){
var_dump('begin init fcrender canvas');
if($this->_canvas == null){
$this->_canvas = new Imagick();
/////// It's the following line :
$this->_canvas->newImage($this->_width, $this->_height, 'transparent', 'miff');
/////////////////////////////////
$this->_filename = 'image';
$this->_extension = 'png';
}
}
那么为什么会出现这个错误呢?谢谢你的帮助! :)
这意味着加载了错误的模块。 210 != 610
是 miff 模块的版本签名,因此预期 IM 7 是 miff 610
,但加载了 IM 6 的 210
。
有几个选项需要修复。
- 卸载所有 ImageMagick 6 资源。
- 将 ImageMagick 7 重新安装到一个独立的位置,并使用
$MAGICK_HOME
环境变量。 - 定义
MAGICK_CODER_MODULE_PATH
环境变量以更正模块路径。
更多信息@Resources documentation。
我认为 php_imagick 与 ImageMagick7.x.x 根本不兼容。
我下载并安装了我在这里找到的 ImageMagick6.9.3:http://windows.php.net/downloads/pecl/deps/
(要安装,我只是把C:\imagemagick\
里的文件夹,把"bin\"里的内容放在top-level里,放在C:\imagemagick\
里。
然后我复制了所有 CORE_RL_*.dll 到 C:\wamp64\bin\apache\apache2.4.23\bin\
.)
这在 PHP 7.0.10 中完美运行,imagick3.4.3 可在此处下载:https://pecl.php.net/package/imagick
谢谢大家的帮助!