| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460 |
- #!/usr/bin/perl
- #
- # Overall demo of the major PerlMagick methods.
- #
- use Image::Magick;
- #
- # Read model & smile image.
- #
- print "Read...\n";
- $null=Image::Magick->new;
- $null->Set(size=>'70x70');
- $x=$null->ReadImage('NULL:black');
- warn "$x" if "$x";
- $model=Image::Magick->new();
- $x=$model->ReadImage('model.gif');
- warn "$x" if "$x";
- $model->Label('Magick');
- $model->Set(background=>'white');
- $smile=Image::Magick->new;
- $x=$smile->ReadImage('smile.gif');
- warn "$x" if "$x";
- $smile->Label('Smile');
- $smile->Set(background=>'white');
- #
- # Create image stack.
- #
- print "Transform image...\n";
- $images=Image::Magick->new();
- print "Adaptive Blur...\n";
- $example=$model->Clone();
- $example->Label('Adaptive Blur');
- $example->AdaptiveBlur('0x1');
- push(@$images,$example);
- print "Adaptive Resize...\n";
- $example=$model->Clone();
- $example->Label('Adaptive Resize');
- $example->AdaptiveResize('60%');
- push(@$images,$example);
- print "Adaptive Sharpen...\n";
- $example=$model->Clone();
- $example->Label('Adaptive Sharpen');
- $example->AdaptiveSharpen('0x1');
- push(@$images,$example);
- print "Adaptive Threshold...\n";
- $example=$model->Clone();
- $example->Label('Adaptive Threshold');
- $example->AdaptiveThreshold('5x5+5%');
- push(@$images,$example);
- print "Add Noise...\n";
- $example=$model->Clone();
- $example->Label('Add Noise');
- $example->AddNoise("Laplacian");
- push(@$images,$example);
- print "Annotate...\n";
- $example=$model->Clone();
- $example->Label('Annotate');
- $example->Annotate(text=>'Magick',geometry=>'+0+20',font=>'Generic.ttf',
- fill=>'gold',gravity=>'North',pointsize=>14);
- push(@$images,$example);
- print "Auto-gamma...\n";
- $example=$model->Clone();
- $example->Label('Auto Gamma');
- $example->AutoGamma();
- push(@$images,$example);
- print "Auto-level...\n";
- $example=$model->Clone();
- $example->Label('Auto Level');
- $example->AutoLevel();
- push(@$images,$example);
- print "Blur...\n";
- $example=$model->Clone();
- $example->Label('Blur');
- $example->Blur('0.0x1.0');
- push(@$images,$example);
- print "Border...\n";
- $example=$model->Clone();
- $example->Label('Border');
- $example->Border(geometry=>'6x6',color=>'gold');
- push(@$images,$example);
- print "Channel...\n";
- $example=$model->Clone();
- $example->Label('Channel');
- $example->Channel(channel=>'red');
- push(@$images,$example);
- print "Charcoal...\n";
- $example=$model->Clone();
- $example->Label('Charcoal');
- $example->Charcoal('0x1');
- push(@$images,$example);
- print "ColorMatrix...\n";
- $example=$model->Clone();
- $example->Label('ColorMatrix');
- $example->ColorMatrix([1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0.5, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]);
- push(@$images,$example);
- print "Composite...\n";
- $example=$model->Clone();
- $example->Label('Composite');
- $example->Composite(image=>$smile,compose=>'over',geometry=>'+35+65');
- push(@$images,$example);
- print "Contrast...\n";
- $example=$model->Clone();
- $example->Label('Contrast');
- $example->Contrast();
- push(@$images,$example);
- print "Contrast Stretch...\n";
- $example=$model->Clone();
- $example->Label('Contrast Stretch');
- $example->ContrastStretch('5%');
- push(@$images,$example);
- print "Convolve...\n";
- $example=$model->Clone();
- $example->Label('Convolve');
- $example->Convolve([1, 1, 1, 1, 4, 1, 1, 1, 1]);
- push(@$images,$example);
- print "Crop...\n";
- $example=$model->Clone();
- $example->Label('Crop');
- $example->Crop(geometry=>'80x80+25+50');
- $example->Set(page=>'0x0+0+0');
- push(@$images,$example);
- print "Despeckle...\n";
- $example=$model->Clone();
- $example->Label('Despeckle');
- $example->Despeckle();
- push(@$images,$example);
- print "Distort...\n";
- $example=$model->Clone();
- $example->Label('Distort');
- $example->Distort(method=>'arc',points=>[60],'virtual-pixel'=>'white');
- push(@$images,$example);
- print "Draw...\n";
- $example=$model->Clone();
- $example->Label('Draw');
- $example->Draw(fill=>'none',stroke=>'gold',primitive=>'circle',
- points=>'60,90 60,120',strokewidth=>2);
- push(@$images,$example);
- print "Detect Edges...\n";
- $example=$model->Clone();
- $example->Label('Detect Edges');
- $example->Edge();
- push(@$images,$example);
- print "Emboss...\n";
- $example=$model->Clone();
- $example->Label('Emboss');
- $example->Emboss('0x1');
- push(@$images,$example);
- print "Equalize...\n";
- $example=$model->Clone();
- $example->Label('Equalize');
- $example->Equalize();
- push(@$images,$example);
- print "Implode...\n";
- $example=$model->Clone();
- $example->Label('Explode');
- $example->Implode(-1);
- push(@$images,$example);
- print "Flip...\n";
- $example=$model->Clone();
- $example->Label('Flip');
- $example->Flip();
- push(@$images,$example);
- print "Flop...\n";
- $example=$model->Clone();
- $example->Label('Flop');
- $example->Flop();
- push(@$images,$example);
- print "Frame...\n";
- $example=$model->Clone();
- $example->Label('Frame');
- $example->Frame('15x15+3+3');
- push(@$images,$example);
- print "Fx...\n";
- $example=$model->Clone();
- $example->Label('Fx');
- push(@$images,$example->Fx(expression=>'0.5*u'));
- print "Gamma...\n";
- $example=$model->Clone();
- $example->Label('Gamma');
- $example->Gamma(1.6);
- push(@$images,$example);
- print "Gaussian Blur...\n";
- $example=$model->Clone();
- $example->Label('Gaussian Blur');
- $example->GaussianBlur('0.0x1.5');
- push(@$images,$example);
- print "Gradient...\n";
- $gradient=Image::Magick->new;
- $gradient->Set(size=>'130x194');
- $x=$gradient->ReadImage('gradient:#20a0ff-#ffff00');
- warn "$x" if "$x";
- $gradient->Label('Gradient');
- push(@$images,$gradient);
- print "Grayscale...\n";
- $example=$model->Clone();
- $example->Label('Grayscale');
- $example->Set(type=>'grayscale');
- push(@$images,$example);
- print "Implode...\n";
- $example=$model->Clone();
- $example->Label('Implode');
- $example->Implode(0.5);
- push(@$images,$example);
- print "Level...\n";
- $example=$model->Clone();
- $example->Label('Level');
- $example->Level('20%');
- push(@$images,$example);
- print "Median Filter...\n";
- $example=$model->Clone();
- $example->Label('Median Filter');
- $example->MedianFilter();
- push(@$images,$example);
- print "Modulate...\n";
- $example=$model->Clone();
- $example->Label('Modulate');
- $example->Modulate(brightness=>110,saturation=>110,hue=>110);
- push(@$images,$example);
- $example=$model->Clone();
- print "Monochrome...\n";
- $example=$model->Clone();
- $example->Label('Monochrome');
- $example->Quantize(colorspace=>'gray',colors=>2,dither=>'false');
- push(@$images,$example);
- print "Morphology...\n";
- $example=$model->Clone();
- $example->Label('Morphology');
- $example->Morphology(method=>'Dilate',kernel=>'Diamond',iterations=>3);
- push(@$images,$example);
- print "Motion Blur...\n";
- $example=$model->Clone();
- $example->Label('Motion Blur');
- $example->MotionBlur('0x13+10-10');
- push(@$images,$example);
- print "Negate...\n";
- $example=$model->Clone();
- $example->Label('Negate');
- $example->Negate();
- push(@$images,$example);
- print "Normalize...\n";
- $example=$model->Clone();
- $example->Label('Normalize');
- $example->Normalize();
- push(@$images,$example);
- print "Oil Paint...\n";
- $example=$model->Clone();
- $example->Label('Oil Paint');
- $example->OilPaint();
- push(@$images,$example);
- print "Plasma...\n";
- $plasma=Image::Magick->new;
- $plasma->Set(size=>'130x194');
- $x=$plasma->ReadImage('plasma:fractal');
- warn "$x" if "$x";
- $plasma->Label('Plasma');
- push(@$images,$plasma);
- print "Polaroid...\n";
- $example=$model->Clone();
- $example->Label('Polaroid');
- $example->Polaroid(caption=>'Magick',rotate=>-5.0,gravity=>'center');
- push(@$images,$example);
- print "Quantize...\n";
- $example=$model->Clone();
- $example->Label('Quantize');
- $example->Quantize();
- push(@$images,$example);
- print "Radial Blur...\n";
- $example=$model->Clone();
- $example->Label('Radial Blur');
- $example->RadialBlur(10);
- push(@$images,$example);
- print "Raise...\n";
- $example=$model->Clone();
- $example->Label('Raise');
- $example->Raise('10x10');
- push(@$images,$example);
- print "Reduce Noise...\n";
- $example=$model->Clone();
- $example->Label('Reduce Noise');
- $example->ReduceNoise();
- push(@$images,$example);
- print "Resize...\n";
- $example=$model->Clone();
- $example->Label('Resize');
- $example->Resize('60%');
- push(@$images,$example);
- print "Roll...\n";
- $example=$model->Clone();
- $example->Label('Roll');
- $example->Roll(geometry=>'+20+10');
- push(@$images,$example);
- print "Rotate...\n";
- $example=$model->Clone();
- $example->Label('Rotate');
- $example->Rotate(45);
- push(@$images,$example);
- print "Sample...\n";
- $example=$model->Clone();
- $example->Label('Sample');
- $example->Sample('60%');
- push(@$images,$example);
- print "Scale...\n";
- $example=$model->Clone();
- $example->Label('Scale');
- $example->Scale('60%');
- push(@$images,$example);
- print "Segment...\n";
- $example=$model->Clone();
- $example->Label('Segment');
- $example->Segment();
- push(@$images,$example);
- print "Shade...\n";
- $example=$model->Clone();
- $example->Label('Shade');
- $example->Shade(geometry=>'30x30',gray=>'true');
- push(@$images,$example);
- print "Sharpen...\n";
- $example=$model->Clone();
- $example->Label('Sharpen');
- $example->Sharpen('0.0x1.0');
- push(@$images,$example);
- print "Shave...\n";
- $example=$model->Clone();
- $example->Label('Shave');
- $example->Shave('10x10');
- push(@$images,$example);
- print "Shear...\n";
- $example=$model->Clone();
- $example->Label('Shear');
- $example->Shear('-20x20');
- push(@$images,$example);
- print "Sketch...\n";
- $example=$model->Clone();
- $example->Label('Sketch');
- $example->Set(colorspace=>'Gray');
- $example->Sketch('0x20+120');
- push(@$images,$example);
- print "Sigmoidal Contrast...\n";
- $example=$model->Clone();
- $example->Label('Sigmoidal Contrast');
- $example->SigmoidalContrast("3x50%");
- push(@$images,$example);
- print "Spread...\n";
- $example=$model->Clone();
- $example->Label('Spread');
- $example->Spread();
- push(@$images,$example);
- print "Solarize...\n";
- $example=$model->Clone();
- $example->Label('Solarize');
- $example->Solarize();
- push(@$images,$example);
- print "Swirl...\n";
- $example=$model->Clone();
- $example->Label('Swirl');
- $example->Swirl(90);
- push(@$images,$example);
- print "Unsharp Mask...\n";
- $example=$model->Clone();
- $example->Label('Unsharp Mask');
- $example->UnsharpMask('0.0x1.0');
- push(@$images,$example);
- print "Vignette...\n";
- $example=$model->Clone();
- $example->Label('Vignette');
- $example->Vignette('0x20');
- push(@$images,$example);
- print "Wave...\n";
- $example=$model->Clone();
- $example->Label('Wave');
- $example->Wave('25x150');
- push(@$images,$example);
- #
- # Create image montage.
- #
- print "Montage...\n";
- $montage=$images->Montage(geometry=>'128x160+8+4>',gravity=>'Center',
- tile=>'5x+10+200',compose=>'over',background=>'#ffffff',
- font=>'Generic.ttf',pointsize=>18,fill=>'#600',stroke=>'none',
- shadow=>'true');
- $logo=Image::Magick->new();
- $logo->Read('logo:');
- $logo->Zoom('40%');
- $montage->Composite(image=>$logo,gravity=>'North');
- print "Write...\n";
- $montage->Set(matte=>'false');
- $montage->Write('demo.jpg');
- print "Display...\n";
- $montage->Write('win:');
|