memo.xight.org

日々のメモ

Image::Magickの使用法

サムネイルを生成

  Transformは,同じ比率で画像を縮小拡大する
#!/usr/bin/perl

use Image::Magick;

# 新しい幅だけ指定する
$newwidth = 120;

$i = Image::Magick->new;
$i->Read('input.gif');

# Transformは同じ比率で画像を縮小拡大する
$i = $i->Transform(geometry=>$newwidth);

print "Content-type: image/gif\n\n";
binmode(STDOUT);
$i->Write("gif:-");

exit;


幅と高さを指定して,GIFファイルをJPEGに変換する

  Scaleは,縦横のピクセルを与え縮小拡大する
#!/usr/bin/perl

use Image::Magick;

$newwidth  = 160;
$newheight = 160;

$i = Image::Magick->new;
$i->Read('input.gif');

# Scaleは縦横のピクセルを与え縮小拡大する
$i->Scale(geometry=>geometry,width=>$newwidth,height=>$newheight);

print "Content-type: image/gif\n\n";
binmode(STDOUT);

# JPEGで出力
$i->Write("jpeg:-");
exit;


枠の追加

width 枠の幅
height 枠の高さ
inner 内枠の幅
outer 外枠の幅
#!/usr/bin/perl

use Image::Magick;

$infile = "input.jpg";

$i = Image::Magick->new;
$i->Read($infile);

# 枠の幅がwidth,枠の高さがheight,内枠の幅がinner,外枠の幅がouter
$i->Frame(geometry=>geometry,width=>6,height=>6,inner=>2,outer=>2,color=>'#50FF50');
print "Content-type: image/gif\n\n";
binmode(STDOUT);
$i->Write("jpeg:-");
exit;


画像の回転

degrees 回転の角度 (-360〜360)
crop 1を指定すると元の画像の大きさを変えない
sharpen 1を指定すると,シャープフィルタを付加する
#!/usr/bin/perl

use Image::Magick;

$infile = "input.jpg";

$i = Image::Magick->new;
$i->Read($infile);
$i->Set(bordercolor=>'#FFFFFF');
$i->Rotate(degrees=>-30,crop=>0,sharpen=>1);
$i->Trim();
print "Content-type: image/gif\n\n";
binmode(STDOUT);
$i->Write("jpeg:-");
exit;


Reference

  ImageMagick.org
  http://www.imagemagick.org/
  ImageMagic(PerlMagic)
  http://www.tryhp.net/homeserver16.htm