アシアルブログ

アシアルの中の人が技術と想いのたけをつづるブログです

PHPで画像処理

こんにちは。久々のブログになりました、牧野です。
先日、色についての話題が出てきていたので、今回はPHPでできる画像処理について書きます。

PHPでは画像を扱える環境が整いさえすれば、簡単に画像処理のプログラムを作ることができます。今回はGDを使用します。
必要となるライブラリは、
gd(PHPにバンドルされているものを使う場合はいりません)
libpng (pngを使う場合)
libjpeg (jpegを使う場合)
freetype (文字画像を扱う場合)
です。
以下Linuxでソースコンパイルの場合ですが、パッケージを使うと楽にインストールできます。
パッケージ名を
gd-devel
libpng-devel
libjpeg-devel
freetype-devel
と、-develをつけたパッケージ名で指定するのがポイントです。
コンパイルオプションは、自分の環境(CentOS)の場合、
--with-gd
--with-jpeg-dir=/usr
--with-png-dir=/usr
--with-freetype-dir=/usr (freetype2の場合)
--enable-gd-native-ttf(綺麗なフォントを使うため)
--enable-gd-jis-conv(日本語フォントを使うため)
を加えています。
インストールできたら、phpinfo()等でGDの項目を確認しておきます。

環境が整えば、後は好きなプログラムを作るだけです。マニュアルの関数一覧、image関数のページを見ると、いろんな関数が用意されていることがわかります。初めての人は一度見てみて下さい。工夫次第で、いろんなことができそうな感じがしますよね!

僕は、画像にモザイクをかけるプログラムを作ってみました。
アップした画像に指定した大きさのモザイクをかけて表示します。
あんまり綺麗なプログラムではないので、参考程度に。。動かす場合も、自己責任でお願いします。
画像処理プログラムサンプル

アシアルのロゴ画像に使ってみると、、、

こんな感じになります。

こういったのが簡単に作れるのがPHPのいいところだなと、改めて思いました!
興味ある人は、何か作ってみると面白いと思います。

ちなみに、画像処理用のライブラリもあって、そういったのを使えばもっと楽になるのかな。あと、imagickのモジュールもあって、そちらの方が高機能そうです。