Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
206 views
in Technique[技术] by (71.8m points)

php - How Margin Image with shadow in imagemagick?

I create an image with: Generate a stack of Polaroid-like photos from existing images using ImageMagick

convert 
img-5.jpg -thumbnail 300x200 -bordercolor white -border 10 
-bordercolor grey60 -border 1 -bordercolor none 
-background none -rotate -4 

( img-2.jpg -thumbnail 300x200 -bordercolor white -border 10 
   -bordercolor grey60 -border 1 -bordercolor none 
   -background none -rotate 6 
) 

( img-3.jpg -thumbnail 300x200 -bordercolor white -border 10 
   -bordercolor grey60 -border 1 -bordercolor none 
   -background none -rotate -2 
) 

( img-1.jpg -thumbnail 300x200 -bordercolor white -border 10 
   -bordercolor grey60 -border 1 -bordercolor none 
   -background none -rotate -4 
) 

( img-4.jpg -thumbnail 300x200 -bordercolor white -border 10 
   -bordercolor grey60 -border 1 -bordercolor none 
   -background none -rotate 4 
) 

-border 100x80 -gravity center +repage -flatten -trim +repage 
-background black ( +clone -shadow 60x4+4+4 ) +swap -background none 
-flatten stack.png

My Result: enter image description here

but i want to margin my result or padding from 4 side of background.

Is there any solution? thank you

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

To create picture Like This :

enter image description here

You need to use :

exec('convert '.$newfile1.' -thumbnail 300x200 -bordercolor white -border 10 -bordercolor grey60 -border 1 -bordercolor none -background none -rotate 3 '.$pic01.'');
exec('convert '.$newfile1.' -thumbnail 300x200 -bordercolor white -border 10 -bordercolor grey60 -border 1 -bordercolor none -background none -rotate -4 '.$pic02.'');
exec('convert '.$newfile1.' -thumbnail 300x200 -bordercolor white -border 10 -bordercolor grey60 -border 1 -bordercolor none -background none -rotate 5 '.$pic03.'');
exec('convert '.$newfile1.' -thumbnail 300x200 -bordercolor white -border 10 -bordercolor grey60 -border 1 -bordercolor none -background none -rotate -9 '.$pic04.'');

exec('convert -size 370x320 xc:none '.$result_image.'');
exec("composite -gravity center ".$pic01."  ".$result_image." -quality 100 ".$result_image); 
exec("composite -gravity center ".$pic02."  ".$result_image." -quality 100 ".$result_image);
exec("composite -gravity center ".$pic03."  ".$result_image." -quality 100 ".$result_image); 
exec("composite -gravity center ".$pic04."  ".$result_image." -quality 100 ".$result_image);

exec("convert ".$result_image." -background  black  ( +clone -shadow 100x3+0+0 ) +swap  -background  none   -flatten ".$result_image);

And your result will be like example. don't forget if you need to more image or different images repeat :

exec('convert '.$newfile1.' -thumbnail 300x200 -bordercolor white -border 10 -bordercolor grey60 -border 1 -bordercolor none -background none -rotate 3 '.$pic01.'');

and change the $newfile or change $pic01 .... $pic(n) if you need. and compose it with $result_image like:

exec("composite -gravity center ".$pic(n)."  ".$result_image." -quality 100 ".$result_image);

I hope this use full. best regard, thank you Mark


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...