Я обновил мою версию ImageMagick и ее привязки для PHP.ImageMagick: ImageCoderSignatureMismatch `miff '
Я установил ImageMagick-7.0.4-9-В16-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';
}
}
Так почему же эта ошибка взялось? Спасибо вам за помощь! :)
Привет, если ответ emcconville верен, вы должны увидеть предупреждающее сообщение, когда PHP загружает модуль Imagick. Вы этого не видите? Если вы не хотите, не могли бы вы сказать, как вы устанавливаете Imagick, поскольку мне нужно выяснить, почему эта ошибка не срабатывает. – Danack
Предупреждение не отображается ни на экране, ни в журнале ошибок php. :/ Я установил Imagemagick с помощью двоичной версии Windows «ImageMagick-7.0.4-9-Q16-x64-dll.ехе»в C: \ imagemagick7_0_4 \ Я настроил вручную мои переменные окружения PATH содержит "C: \ imagemagick7_0_4 \", MAGICK_HOME и MAGICK_CODER_MODULE_PATH являются "C:. \ imagemagick7_0_4 \ модули \ кодеры \" Я проверил' Magick конвертировать afile.png -resize 50% afile-small.png' в командной строке, и он сработал. – Thaledric