Zaktualizowałem moją wersję ImageMagick i jego wiązania PHP.

Zainstalowałem Imagemagick-7.0.4-9-Q16-X64, a PHP_IMagick-VC14-X64, działa na PHP 7.0.10.

Linia polecenia wydaje się dobrze pracować, odkąd udało mi się wykonać proste magick convert image.png -resize 50% imageSmall.png.

Problem polega na tym, że skrypt PHP, który z powodzeniem uruchomił się na Imagemagick 6.8.x (nie pamiętam bardzo dobrze), ale nie mogę tego zrobić za pomocą tej wersji.

Dał mi następujący błąd:

ImageCoderSignatureMismatch `miff': 210 != 610 @ error/module.c/OpenModule/1342

Czasami pokazuje mi Unable to set the image format, tak naprawdę nie wiem dlaczego.

Znalazłem, gdzie w moim kodzie wywołał błąd:

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';
    }
}

Dlaczego pochodzi ten błąd? Dziękuję za Twoją pomoc ! :)

1
Thaledric 15 luty 2017, 21:12

1 odpowiedź

Oznacza to, że załadowano niewłaściwy moduł. 210 != 610 są podpisem w wersji modułu MIFF, więc IM 7 jest oczekiwane Miff 610, ale załadowano go 6's {X2}}.

Para opcji do naprawienia.

  • Odinstaluj wszystkie zasoby Imagemagick 6.
  • Ponownie zainstaluj ImageMagick 7 do odosobnionej lokalizacji i użyj zmiennej środowiskowej $MAGICK_HOME.
  • Zdefiniuj zmienną środowiskową MAGICK_CODER_MODULE_PATH, aby poprawić ścieżkę modułu.

Więcej informacji @ Dokumentacja zasobów.

1
emcconville 15 luty 2017, 20:11