PHP+ImageMagick その3
さらにImageMagickについて。
ImageMagickの実行には exec() 関数を使っていたけど、shell_exec() の方が個人的には読みやすいので変更。
<?php
echo shell_exec('/usr/bin/convert -version');
?>
ロリポップでImageMagickを使えなかったのは、PHPの設定で safe_mode を On にしていたからでした。すっかり忘れてた…。(正確には、ImageMagickではなく exec() や shell_exec() の実行に制限がかかります。)Off にすれば無事実行できました。一安心。
また、ImageMagickは処理結果は常にファイルに出力されるのかと思っていたけど、標準出力に渡すこともできるのですね。
以下のようにすれば、150px×150pxのサムネイルを直接画面に表示できます。
<?php
echo shell_exec('/usr/bin/convert -geometry 150x150 illust.png -');
?>
さらに、以下のようにすればJpegに変換した上で直接画面に表示できます。
<?php
echo shell_exec('/usr/bin/convert -geometry 150x150 illust.png jpg:-');
?>
freoで使いそうなのはサムネイル作成と画像形式変換くらいなので、これで実装できそうです。