CentOS 5.4 に ImageMagick をインストールして遊んでみる

WordPress のプラグインである WP-tegaki はフォントを画像化するのに GD を使っていろいろやってますが、改造しようとあれこれソースを眺めていたら、縁取りやらドロップシャドウやらちょっとした効果を付けようと思ったら GD では難しげな感じ。さらに高機能な画像処理ツールである ImageMagick を PHP から使えるようにするため、インストールしてみました。

CentOS 5.4 では yum からインストールされる ImageMagick が 6.2.8 と現行のバージョン ((現時点の最新バージョンは 6.5.7-4 だったり)) と比べてかなり古いようなので、入れ替えのための情報を探してみたら良さげなものがありました。

ImageMagick の RPM を作ってみる

CentOS 5 の ImageMagick を RPM でアップグレードしてみた – PHPで携帯サイトを開発する人のブログ の情報を参考に、ImageMagick 6.5.3-10 の RPM を作成しました。

まずは SRPM を取ってきてインストール

# wget ftp://ftp.kddlabs.co.jp/graphics/ImageMagick/linux/SRPMS/ImageMagick.src.rpm
# rpm -ivh --nomd5 ImageMagick.src.rpm

基本的な手順はリンク先のサイトと同じで、足りないパッケージをインストール、 yum でインストールできなくて、ついでにあまり必要でなさげな JPEG2000 の対応を切り捨て、SPEC ファイルを書き換えてリビルドして完了。CentOS 標準の yum から取ってこれなかったのは以下の3つで、それぞれ

  • perl-devel …… Perl パッケージに含まれるので SPEC から perl-devel を削除
  • jasper-devel …… JPEG2000 サポートなので使わなければ SPEC から削除
  • djvulibre-devel …… dag リポジトリからインストール

という状況なので、djvulibre-devel だけ入れてやって完了。

/etc/yum.repos.d/dag.repo を作成し、

[dag]
name=Dag RPM Repository for CentOS5
baseurl=http://ftp.riken.jp/Linux/dag/redhat/el5/en/$basearch/dag/
enabled=0
gpgcheck=1

と書いてやって、

# rpm --import http://ftp.riken.jp/Linux/dag/RPM-GPG-KEY.dag.txt
# yum --enablerepo=dag install djvulibre-devel

そして、パッケージをリビルド。

# rpmbuild -ba ImageMagick.spec

うまくいけば、以下のパッケージができます。

  • ImageMagick-6.5.3-10.x86_64.rpm
  • ImageMagick-c++-6.5.3-10.x86_64.rpm
  • ImageMagick-c++-devel-6.5.3-10.x86_64.rpm
  • ImageMagick-devel-6.5.3-10.x86_64.rpm
  • ImageMagick-doc-6.5.3-10.x86_64.rpm
  • ImageMagick-perl-6.5.3-10.x86_64.rpm

古いバージョンのパッケージを yum remove してやってから新しいパッケージをインストールしました。

PECL::Imagick を導入する

ImageMagick がインストールされたので、次は PHP から簡単に使うための API を提供する PECL::Imagick を導入します。

これはコマンド一発なのでかなり簡単。

# pecl install imagick

エラーが出なければ、php.ini にモジュール読み込むための記述

extension=imagick.so

を追記して Apache を再起動すればOK。ここはハマらないで済みましたよ。

Imagick で遊んでみる

まずは練習がてらいくつか画像を作ってみました。

とまぁ、四苦八苦しながらそれなりにできるようになりました。まだ全然理解できてないので試行錯誤でやっているのですが、表現力の高さは嫌でも感じられますね。というか、マニュアル見た段階で、(;゚Д゚) な感じなのですががが。

お次の段階としては、WordPress のプラグインの WP-tegaki の GD を使っている部分を Imageck に置き換えるのをやってみたいかな。