2009/07/29(水) [n年前の日記]
#2 [prog] 画像群に連番数字を描画するPerlスクリプトを作成
あちこちのページからコピペして作成。PerlMagick(ImageMagick)使用。ActivePerl 5.10.0 build 1004 で動作確認。
#!/usr/bin/perl -w
#
# フォルダ以下で見つかった連番画像ファイルに数字を上書きするスクリプト
# 000.png 〜 999.png に数字を描画、add_000.png 〜 add_999.png として保存。
use strict;
use warnings;
use Image::Magick;
my $value = 0;
my $dir = '.';
my @filelist = ();
opendir DH, $dir or die "$dir:$!";
while (my $file = readdir DH) {
next if $file =~ /^\.{1,2}$/;
if ( $file =~ /^(\d+)\.png/ ) {
push(@filelist, $1);
}
}
closedir DH;
foreach my $fn (@filelist) {
my $src = $fn . ".png";
my $dst = "add_" . $fn . ".png";
print "$src -> $dst\n";
my $image = Image::Magick->new; # オブジェクト作成
$image->Read($src); # 画像読み込み
# 文字を記入する
my $text = sprintf("%04d", $value);
$image->Annotate(text=>$text, stroke=>'#FFFFFF', fill=>'#000000',
font => 'VL Gothic', strokewidth => '1',
pointsize=>'36', x=>'120', y=>'80');
# 画像出力
binmode STDOUT;
$image->Write($dst);
undef $image;
$value++;
}
exit;
[ ツッコむ ]
以上です。