imagemagick/PerlMagick/demo/annotate.pl

42 lines
1.5 KiB
Perl
Raw Normal View History

2023-02-03 21:16:55 +08:00
#!/usr/bin/perl
use Image::Magick;
$image = Image::Magick->new();
$x = 100;
$y = 100;
for ($angle=0; $angle < 360; $angle+=30)
{
my ($label);
print "angle $angle\n";
$label=Image::Magick->new(size=>"600x600",pointsize=>24);
$label->Read("xc:white");
$label->Draw(primitive=>'line',points=>"300,100 300,500",stroke=>'#600');
$label->Draw(primitive=>'line',points=>"100,300 500,300",stroke=>'#600');
$label->Draw(primitive=>'rectangle',points=>"100,100 500,500",fill=>'none',
stroke=>'#600');
$label->Annotate(font=>'Generic.ttf',text=>"North West",gravity=>"NorthWest",
x=>$x,y=>$y,undercolor=>'yellow',rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"North",gravity=>"North",
y=>$y,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"North East",gravity=>"NorthEast",
x=>$x,y=>$y,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"West",gravity=>"West",
x=>$x,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"Center",gravity=>"Center",
rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"East",gravity=>"East",
x=>$x,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"South West",gravity=>"SouthWest",
x=>$x,y=>$y,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"South",gravity=>"South",
y=>$y,rotate=>$angle);
$label->Annotate(font=>'Generic.ttf',text=>"South East",gravity=>"SouthEast",
x=>$x,y=>$y,rotate=>$angle);
push(@$image,$label);
}
$image->Set(delay=>20);
$image->Write("annotate.miff");
$image->Animate();