Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
578 views
in Technique[技术] by (71.8m points)

php - How to install ImageMagick with Wampserver 3.0.0 64?

I lost a day trying to figure this out, at various times getting "no decode delegate for this image format" and "The specified module could not be found" errors. The information I could find on these problems was dated in terms of version numbers, and many included instructions like overwriting the ImageMagick-installed dlls from the PECL distribution or copying dlls into windows/system32; two things I didn't want to do.

Environment: Windows 10
Wampserver: 3.0.0, Apache/2.4.17 (Win64) PHP/5.6.16

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)
  1. Downloaded and installed latest ImageMagick:
    ImageMagick-7.0.2-0-Q16-x64-dll.exe

  2. Downloaded php_imagick-3.4.3rc1-5.6-ts-vc11-x64 from http://windows.php.net/downloads/pecl/releases/imagick/3.4.3rc1/

  3. Unpacked php_imagick.dll into [wampserver directory]inphpphp5.6.16ext

  4. Added extension=php_imagick.dll to
    [wampserver directory]inapacheapache2.4.17inphp.ini

  5. Got "no decode delegate for this image format" error, but at least imagick showed up in phpinfo() where I could see that php_imagick.dll was compiled with ImageMagick 6.9.3-7 Q16 x64. There was no obvious way to know this beforehand.

  6. Downloaded ImageMagick-6.9.3-7-Q16-x64-dll.exe from http://ftp.icm.edu.pl/packages/ImageMagick/binaries/ (ImageMagick has removed this package from their site).

  7. Uninstalled ImageMagick-7.0.2-0-Q16-x64,
    installed ImageMagick-6.9.3-7-Q16-x64 to c:ImageMagick,
    added c:ImageMagick to PATH (in front, to avoid collision with windows convert.exe).

  8. Verified everything ok with:

     $image = new Imagick();
     $image->readImage([path to my jpeg]);
    
     $wm = new Imagick();
     $wm->readImage([path to my watermark png]);
    
     $image->compositeImage($wm, imagick::COMPOSITE_OVER, 5, 5);
    
     header("Content-Type: image/jpeg");
     echo $image;
    

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...