#!/usr/bin/perl # Overall demo of the major PerlMagick methods. use Image::Magick; # Read model & smile image. # ---------------------------------------------------------- $kosuu_yoko = 15; $tile = $kosuu_yoko . "x+10+200"; # geometry => '128x160+8+4>', $yoko_haba = 15 * 10; $geometry = $yoko_haba . 'x160+8+4>'; $name_input = "0_org.jpg"; $name_output = '_examples03_1_yoko031.jpg'; # ---------------------------------------------------------- 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($name_input);warn "$x" if "$x";$model->Label('Magick');$model->Set(background=>'white'); $smile = Image::Magick->new; $x = $smile->ReadImage('0_smile.jpg');warn "$x" if "$x";$smile->Label('Smile');$smile->Set(background=>'white'); # Create image stack. ---------------------------------------- print "Transform image...\n"; $images =Image::Magick->new(); print "0_org...\n"; $example=$model->Clone(); $example->Label('0_org'); push(@$images,$example); 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=>'+40+30'); 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 "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); 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>', geometry => $geometry, gravity=>'Center', # tile=> "15x+10+200",compose=>'over',background=>'#ffffff',font=>'Generic.ttf',pointsize=>18,fill=>'#600',stroke=>'none',shadow=>'true' tile=> $tile ,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($name_output); print "Display...\n";#$montage->Write('win:'); print "[end]";;