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で使いそうなのはサムネイル作成と画像形式変換くらいなので、これで実装できそうです。