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 で遊んでみる
まずは練習がてらいくつか画像を作ってみました。
- GD でいろいろやってみた画像フォントは基本的な描画しかできないのでちょっと不便
- Imagick で画像を作ってみたサンプル1 縁取りとかも割と簡単にできます
- フォントに影を付けようとやってみたら失敗した画像
- ドロップシャドウに成功した画像
とまぁ、四苦八苦しながらそれなりにできるようになりました。まだ全然理解できてないので試行錯誤でやっているのですが、表現力の高さは嫌でも感じられますね。というか、マニュアル見た段階で、(;゚Д゚) な感じなのですががが。
お次の段階としては、WordPress のプラグインの WP-tegaki の GD を使っている部分を Imageck に置き換えるのをやってみたいかな。
コメント