web-dev-qa-db-ja.com

ImageMagickこの画像形式のデコードデリゲートはありません

私はWindowsとWAMPサーバーの下で働いています。

これは私のPHP Imagickのコードです

$imagick = new Imagick($_SERVER['DOCUMENT_ROOT'] . '/' . $this->_name);

ここで、$_SERVER['DOCUMENT_ROOT'].'/'.$this->_nameは次のように表示されます:

D:/Sources/my_project/public/media/2/9/1/05201502/55450e1b6543a05201502_9.PNG

その画像を確認しましたが、フォルダに存在します。

しかし、Imagickは例外をスローします:

キャッチされない例外「ImagickException」とメッセージ「この画像形式のデコードデリゲートがありません」「D:/Sources/my_project/public/media/2/9/1/05201502/55450b10d8ea705201502_9.PNG」@ error/configure.c/ReadImage/555 ' D:\ Sources\my_project\library\project\Image.phpの225行目

解決策を探しましたが、見つかりませんでした。どうすれば修正できますか?ありがとうございました

更新:これは、コマンドラインでconvert -versionと入力したときの結果です。

  Version: ImageMagick 6.8.8-4 Q16 x86 2014-01-29 http://www.imagemagick.org
  Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
  Features: DPC Modules OpenMP
  Delegates: bzlib cairo freetype jbig jng jp2 jpeg lcms lqr pangocairo \
             png ps rsv g tiff webp xml zlib

更新

これはimagickのphpinfoです。

ImageMagickサポートされているフォーマットの数:0
ImageMagickでサポートされている形式:値なし

6
SmootQ

ImageMagick PHPモジュールはany画像形式をサポートしていないようです。

他のImageMagickインストールを見つけるか、最初からPHPをインストールしてみてください。

また-すでにあるようです 質問/回答 in SOそれについて

6
Kalle Volkov

実行する必要があります

convert -version

出力を報告します。私のシステムでは

Version: ImageMagick 6.9.0-0 Q16 x86_64 2014-12-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib gvc jbig \
                      jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps \
                      rsvg tiff webp wmf x xml zlib

出力には、組み込みの1つとしてpngが含まれていますか'delegates'

そうでない場合は、インストールを更新するか、現在のソースからビルドしてください。

6
Kurt Pfeifle

最後に、Windows openserver/nginx/php-fpmインストールの解決策を見つけました。

  1. お使いのバージョンのPHP from http://windows.php.net/downloads/pecl/releases/imagick/ (php_imagick-3.4など)の最新のphp_imagickディストリビューションをダウンロードします。 3-7.1-ts-vc14-x64.Zip)
  2. このアーカイブから「php/ext」フォルダにphp_imagick.dllのみを抽出します。
  3. Phpinfo()を実行し、「ImageMagickバージョンでコンパイルされたImagick」の行の値を確認します(私の場合:「ImageMagick6.9.3-7 Q16 x64 ...」)。
  4. 次に、 http://windows.php.net/downloads/pecl/deps/ に移動し、正しいバージョンのImagick-*。Zipファイルをダウンロードします(私の場合:ImageMagick-6.9.3-7-vc14 -x64.Zip)。
  5. このアーカイブを削除し、すべての* .dllファイルを「/ bin」フォルダーからyout「php/ext」フォルダーにコピーします(約145ファイル)。
  6. サーバーを再起動し、phpinfo()を確認します。 ImageMagickは現在約230以上のフォーマットをサポートしています。

Phpinfo()は、imagickがすべての形式をサポートしていると表示することがありますが、phpスクリプトが応答しません。この場合、インストール用に正しいバージョンのImagick-*。Zipをダウンロードしていることを再確認してください。 (ts/nts、VC11/VC14、x64/x86)

2