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
Qiitaで
「3分間Perlテキストクッキング」
という連載を始めました。
テキスト処理を題材にして、3分くらいで読める分量で、書いていきます。
文字コード、テキストデータ、コンピュータにおけるテキストの扱いなど、ソフトウェアの基礎の話題も
3分間Perlテキストクッキング