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.Windows自体を再起動します
2.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のマニュアルになります。