Translate

2010年10月2日土曜日

use Imager;

使い方を調べてみる。

■画像サイズを調べる
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

print "width: $img_x, height: $img_y \n";



■画像サイズを半分にして別名で保存する
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

#オブジェクトを上書き
$img = $img->scale( xpixels => $img_x/2, ypixels => $img_y/2 );
$img->write( file => 'half.jpg' ) or die $img->errstr;




■画像サイズを4分の1にして別名でjpg→pngで保存する
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Imager;

#サイズを4分の1にして、jpgからpngに変換する
my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();

$img = $img->scale( xpixels => $img_x/4, ypixels => $img_y/4 );
$img->write( file => 'quarter.png' ) or die $img->errstr;




■別の画像を右下に合成する
#!/usr/bin/perl                                                                 
use strict;
use warnings;
use utf8;
use Imager;

my $img = Imager->new;
$img->read( file=>'images.jpg' ) or die $img->errstr;
my $img_x = $img->getwidth();
my $img_y = $img->getheight();


my $img2 = Imager->new;
$img2->read( file=>'half.jpg' ) or die $img2->errstr;
my $img2_x = $img2->getwidth();
my $img2_y = $img2->getheight();

$img = $img->paste(
left => $img_x - $img2_x,
top => $img_y - $img2_y,
img => $img2,
);
$img->write( file => 'mix.jpg' );

0 件のコメント: