Home | History | Annotate | Download | only in demo
      1 #!/usr/bin/perl
      2 
      3 use Image::Magick;
      4 
      5 #$font = '-adobe-helvetica-medium-r-normal--25-180-100-100-p-130-iso8729-1';
      6 #$font = 'Times';
      7 $font = 'Generic.ttf';
      8 
      9 $image = Image::Magick->new();
     10 $smile = Image::Magick->new();
     11 $smile->Read('smile.gif');
     12 $smile->Set(background=>'none');
     13 $x = 100;
     14 $y = 100;
     15 for ($angle=0; $angle < 360; $angle+=30)
     16 {
     17   my ($thumbnail);
     18 
     19   print "angle $angle\n";
     20   $thumbnail=Image::Magick->new(size=>"600x600",pointsize=>24,font=>$font,
     21     fill=>'black');
     22   $thumbnail->Read("xc:white");
     23   $thumbnail->Draw(primitive=>'line',points=>"300,100 300,500",stroke=>'#600');
     24   $thumbnail->Draw(primitive=>'line',points=>"100,300 500,300",stroke=>'#600');
     25   $thumbnail->Draw(primitive=>'rectangle',points=>"100,100 500,500",
     26     fill=>'none',stroke=>'#600');
     27   $thumbnail->Composite(image=>$smile,gravity=>"NorthWest",x=>$x,y=>$y,
     28     rotate=>$angle);
     29   $thumbnail->Composite(image=>$smile,gravity=>"North",y=>$y,rotate=>$angle);
     30   $thumbnail->Composite(image=>$smile,gravity=>"NorthEast",x=>$x,y=>$y,
     31     rotate=>$angle);
     32   $thumbnail->Composite(image=>$smile,gravity=>"West",x=>$x,rotate=>$angle);
     33   $thumbnail->Composite(image=>$smile,gravity=>"Center",rotate=>$angle);
     34   $thumbnail->Composite(image=>$smile,gravity=>"East",x=>$x,rotate=>$angle);
     35   $thumbnail->Composite(image=>$smile,gravity=>"SouthWest",x=>$x,y=>$y,
     36     rotate=>$angle);
     37   $thumbnail->Composite(image=>$smile,gravity=>"South",y=>$y,rotate=>$angle);
     38   $thumbnail->Composite(image=>$smile,gravity=>"SouthEast",x=>$x,y=>$y,
     39     rotate=>$angle);
     40   push(@$image,$thumbnail);
     41 }
     42 $image->Set(delay=>20);
     43 $image->Write("composite.miff");
     44 $image->Animate();
     45