Windows7+XAMPPでImagick(ImageMagick)を使う

開発環境は、Windows 7 Professional(32bit)+XAMPP v3.22+PHP 7.1.7。

Windows上でImageMagickPHP拡張であるIMagickを使う方法をネットで調べても、あることはあるんですが、分かりづらい記事ばかりで、かなり、詰まってしまったので、メモしておきます。振り返ってみれば、ものすごく簡単なところで詰まっていました・・・。

1.まず、phpinfo関数を使って、phpの情報を表示します。
f:id:k01ken:20180416184123p:plain
2.そこから、4つの必要な情報を得ます。
 1.一番左上にPHPのバージョン (例: PHP Version 7.1.7
 2.Compilerの欄の情報 (例: MSVC14 (Visual C++ 2015)
 3.Architectureの欄の情報 (例: x86
 4.Thread Safetyの欄の情報 (例: enabled

ImageMagickを入手する
1.パッケージのあるサイトへアクセスします。
windows.php.net - /downloads/pecl/deps/
2.先ほど入手した4つの情報から、CompilerはMSVC14で、Architectureはx86なので、ImageMagick-6.9.3-7-vc14-x86.zipをクリックし、ダウンロードします。
→自分が詰まったのはこの部分です。PHPはバージョンが7.1だったので、6.9.3は違うなと思って、ずっと、7.1がないか探していました。結局は、6.9.3はImageMagickのバージョンでした。それとプラスして、ファイル自体がどこにあるのか分かりにくくて、ずっと探していました。
3.ダウンロードしたファイルを解凍し、そのディレクトリ(以下、ImageMagick-6.9.3-7-vc14-x86)を、Cドライブ直下に移動させます。
4.ImageMagick-6.9.3-7-vc14-x86ディレクトリ内のbinディレクトリに、パスを通したいので環境変数をいじります。

Windows7での環境変数PATHの設定方法
1.ウィンドウズの左下のボタンを押します。
2.『コンピューター』をクリック
3.ウィンドウを最大化して、上部にある『システムのプロパティ』をクリック
4.左側にある『システムの詳細設定』をクリック
5.『詳細設定』タブの『環境変数』をクリック
6.『~のユーザー環境変数』の変数『PATH』をダブルクリック
7.セミコロンの後に、目的のファイルのある場所までのフルパスを入力し、『OK』ボタンをクリック
8.『環境変数』ウィンドウの『OK』ボタンをクリック
9.『システムのプロパティ』ウィンドウの『OK』ボタンをクリック

5.上記の方法を、6.まで進めてから、環境変数のPATHの末尾のセミコロンの後に『C:\ImageMagick-6.9.3-7-vc14-x86\bin』を追加します。
6.システム環境変数の欄にて、『新規』ボタンをクリックし、変数名にMAGICK_HOME、変数値に、『C:\ImageMagick-6.9.3-7-vc14-x86\bin』を入力し、『OK』ボタンをクリックし、『環境変数』ウィンドウの『OK』ボタンをクリックし、『システムのプロパティ』ウィンドウの『OK』ボタンをクリックする。


■IMagickを入手する
1.パッケージのあるサイトへアクセスします。
PECL :: Package :: imagick
2.最新版である3.4.3の『DLL』リンクをクリックします。
3.先ほど入手した4つの情報から、PHPのバージョンは、7.1.7なので、PHP 7.1の欄から、Architectureはx86で、Thread Safetyはenabledなので、TSを選択するため、
『7.1 Thread Safe (TS) x86』のリンクをクリックし、ダウンロードする。
4.解凍して、その中にあるphp_imagick.dllをコピーし、c:\xampp\php\extディレクトリ内にペーストします。
5.c:\xampp\phpにあるphp.ini内の『Dynamic Extensions』の欄に、
extension=php_imagick.dll
を追加して、保存します。


1.Apacheを再起動して、phpinfo関数でphpの状態をチェックし、以下のようになっていれば、成功。
f:id:k01ken:20180416195031p:plain

参考リンク
qiita.com
この記事のおかげで何とかできました。

cakephp3でimagemagick,imagineを使う | まとめーたー
・CakePHP3で、IMagickを使う方法が書かれています。Imagineプラグインをcomposerでインストールして使います。画像を縮小するサンプルが書かれています。
CakePHP3 ImageMagickで写真(画像)リサイズするサンプルコード – CakePHP3 Tips
PHP: ImageMagick - Manual
PHPの公式サイト内のIMagickのマニュアルになります。

追記

この記事をアップした後に、新しいパソコンに買い替えて、Windows 10 Pro(64bit) + PHP 7.2.12でやったときに、上記のImagicKのサイトには、7.1までしかなくて、一応それで、やってみると、どうしても、うまくいかず、ネットを検索すると、以下のサイトにPHP7.2に対応したものがありました。
windows.php.net - /downloads/pecl/snaps/imagick/3.4.3/
パソコンは64bitですけど、phpinfo()で見た時に、Architectureがx86なので、x86を、Thread SafetyがenabledであることからTSを、CompilerがMSVC15 (Visual C++ 2017) であることから、VC15に、当てはまるものとして、php_imagick-3.4.3-7.2-ts-vc15-x86.zipをダウンロードしました。
後のやり方は上記通りにやることで、うまく動きました。


参考リンク
windows版xampp(php7.2.x)にimagemagickをインストールする方法
・このサイトが解決に役立ちました。ありがとうございました。