【第0回】Perlで画像処理 -Imagerの練習-

格闘ゲーム作成はなかなか根気が必要ですね。
いや、慣れている人はさっと作るんだろうけどさ。。。

気分転換に画像処理の勉強でもしてみようかなぁと
思いとりあえず記事を書いてみている。

まず、Perlで画像を扱う場合Imagerが定番?らしい。

というわけで、まずは練習がてらに
コードを書いてImagerの使い方をさっと学んでみる。

use strict;
use warnings;
use Imager;
use Image::Size;

my $img = Imager->new;
$img->read(file => 'test.png') or die $img->errstr;

my ($max_width, $max_heigth) = imgsize('test.png');
for (my $x = 0; $x < $max_width; $x++) {
    for (my $y = 0; $y < $max_heigth; $y++) {
        my $before_color = $img->getpixel(x => $x, y => $y);
        my ($red, $green, $blue, $alpha) = $before_color->rgba();
        my $after_color = Imager::Color->new(
                            $red ^ 0xFF, $green ^ 0xFF , $blue ^ 0xFF);
        $img->setpixel(x => $x, y => $y, color => $after_color);
    }
}

$img->write( file => 'after_test.png') or die $img->errstr;

■実行前
test


















■実行後
after_test


















てな感じになる。
# 絵の素材はこちらからお借りしました。

考え方は簡単で、画像の1ピクセルごとの
情報を読み取ってその値を反転して再度セットしているだけ。
これで、基本的な画像処理の勉強ができるようになった。

#1 実行時間に10sか。。。
#2 livedoorブログって画像のサムネイルないのか。。。?