Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. モジュール
  3. here

Imager - 画像の編集を簡単に行う

「Imager」モジュールを使用すると「画像の編集」が簡単にできます。Tipsを紹介します。

「日本語」を描画する

Imagerで日本語を描画するには次のようにします。

use strict;
use warnings;
use utf8;

use Imager;

my $img = Imager->new;

# 画像の読み込み
$img->read(file => 'example.jpg')
  or die $img->errstr;

# フォント
my $font = Imager::Font->new(
  file => '/usr/share/fonts/ja/TrueType/kochi-gothic-subst.ttf'
);

# 文字列の描画
$img->string(
  x => 50,
  y => 50,
  string => 'やったー',
  font => $font,
  size => 15,
  aa => 1,
  color => '#000000',
) or die $img->errstr;

# 画像の保存
$img->write(file => 'new_example.jpg')
  or die $img->errstr;

Imager::Fontでフォントオブジェクトを作成しています、フォントが実際に存在するパスを指定します。上記の例はCentOSの場合です。

stringメソッドを使って、画像の上に文字列を描画しています。aaはアンチエイリアスをかけるオプションです。

スクリプトはUTF-8で保存して、utf8プラグマを有効にしましょう。

バイナリデータを読み込む

PerlのImagerモジュールでバイナリデータを読み込むにはreadメソッドのdataオプションを使用します。

$img->read(data => $data, type => 'jpeg')
  or die $img->errstr;

画像のタイプも合わせて指定する必要があるので注意してください。

CentOSでImagerを使うための準備

Imagerは画像を加工するためのPerlのモジュールです。jpeg, png, gifという画像形式とフォントを扱うためにあらかじめ以下のライブラリをCentOSにインストールしておきましょう。

yum -y install libjpeg-devel
yum -y install libpng-devel
yum -y install giflib-devel
yum -y install freetype-devel

それからImagerをインストールします。

cpan Imager
  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。