Command for merging 2 image files

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

fmw42 wrote: 2017-04-16T18:15:56-07:00
Referring to 3) and 4)
Why +0+400 (y=+400) moving the Text to bottom not to top?
Why +0-400 (y=-400) moving the Text to top not to bottom?
In Imagemagick, rows increase downward (as positive). The 0,0 pixel is at the top left.

You can change the gravity setting to north if you want the text aligned at the top or northwest if you want the text aligned top left.
Thanks for your advice.

gravity setting to north - top
gravity setting to south - bottom
northwest - top left
northeast - top right
etc.

Regards
satimis
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

fmw42 wrote: 2017-04-16T18:44:07-07:00
If I need ;
1) adding another image_02.jpg to the top right sector of the background.
2) the Text images is still in the center retaining its original size
3) image_02.jpg to be in a circle trimmed, size any such for testing
Try this:

Code: Select all

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity northeast -compose over -composite \
result.png
In IM 7, this could be done in one command without separate commands for dim and dim2
Ran following command;

Code: Select all

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity northeast -compose over -composite \
result_07.png
result_07.png
https://www.dropbox.com/s/4x4txd8wgdx1r ... 7.png?dl=0

1) The command seems a little bid complicate. Could it be shortened?
2) What is the operation of

Code: Select all

-crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \
3) What is the operation of

Code: Select all

mpr:img -fill black -colorize 100 -fill white 
4) What is the operation of

Code: Select all

-draw "circle $dim2,$dim2 0,$dim2"
5) What is the operation of

Code: Select all

mpr:img +swap -alpha off -compose copy_opacity -composite \
6) What commands to be used for adding a border to the circle including border width and color?

Thanks

Regards
satimis
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

Here is an explanation:

# line 1 - get the minimum of the width and height of the image to be put in the circle to be used to crop the image to square
# line 2 - compute half of that for the radius of the circle
# line 3 - read the background image and the text image
# line 4 - blend the text image into the background image
# line 5 - center crop the image to be put into the circle to a square and save as an in-memory image mpr:img
# line 6 - take the mpr:img and make it all black and then draw a white circle
# line 7 - bring back the mpr:img and swap the order with the circle and put the circle image into the alpha channel of the mpr:img
# line 8 - compose the last image with the circle as the alpha channel over the blended image
# line 9 - save the result.png image.

Code: Select all

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity northeast -compose over -composite \
result.png
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

6) What commands to be used for adding a border to the circle including border width and color?
Try this:

I save the black and white circle image as mpr:circle. Then at the end I take the circle image, pad with black (by 3), create a ring -morphology edgein disk:5 and color it red and and make the rest transparent. The 5 is about twice the 3. The border is needed so that the edgein process has enough border to work to make the ring. Then after creating the red ring image, I shave off the extra border of 3. Then I composite that result over the previous result.

Code: Select all

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white \
     -draw "circle $dim2,$dim2 0,$dim2" -write mpr:circle \
     mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity northeast -compose over -composite \
\( mpr:circle -bordercolor black -border 3 -morphology edgein disk:5 -shave 3x3 \
     -background red -alpha shape \) \
-gravity northeast -compose over -composite \
result.png
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

fmw42 wrote: 2017-04-17T09:42:54-07:00 Here is an explanation:

# line 1 - get the minimum of the width and height of the image to be put in the circle to be used to crop the image to square
Thanks for your explanation

What are % , fx and \n ?
# line 2 - compute half of that for the radius of the circle
What is xc ?
# line 6 - take the mpr:img and make it all black and then draw a white circle
What are "circle $dim2,$dim2 0,$dim2"
# line 7 - bring back the mpr:img and swap the order with the circle and put the circle image into the alpha channel of the mpr:img
Why put the circle image into the alpha channel

Code: Select all

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity northeast -compose over -composite \
result.png
Thanks

Regards
satimis
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

What are % , fx and \n ?
fx is the imagemagick calculation command
%[fx: ...] does the computation according to the formula you provide (in this case the minimum of the image width and height.
\n puts a line break in the returned result

Please see
http://www.imagemagick.org/script/fx.php
http://www.imagemagick.org/Usage/transform/#fx_escapes
What is xc ?
xc:somecolor tells IM to create a new image of some color. It is equivalent to canvas. It is needed as a placeholder for doing calculations. If no size is specified and no color is specified then it creates a one pixel transparent image. See links above and http://www.imagemagick.org/script/formats.php#pseudo
What are "circle $dim2,$dim2 0,$dim2"
-draw "circle xcenter,ycenter xcenter,ycenter+radius" is the command to draw a circle. See
http://www.imagemagick.org/Usage/draw/#primitives
http://www.imagemagick.org/Usage/draw/#circles
http://www.imagemagick.org/script/magic ... aphics.php
Why put the circle image into the alpha channel
I use the circle twice. The first time I put it into the alpha channel of the image so that where it is white , you see the image and where it is black, you get fully transparent pixels. That is how to make a circle of an image. It is really a square, but only the interior of the circle shows through.

The second time, I have taken the circle and generate an edge image to be a ring. I make the ring red and the rest as transparent. I then overlay it onto the previous resulting image.

Imagemagick can have a bit of a learning curve for novices, so please take some time to review the following:

viewtopic.php?f=1&t=9620
http://www.imagemagick.org/script/comma ... essing.php
http://www.imagemagick.org/Usage/reference.html
http://www.imagemagick.org/Usage/

One way to learn about such long commands is to put +write tmpX.png after each operator and see what the results look like. Then you can correlate the results to the commands.

So try this:

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
echo "dim=$dim"

dim2=`convert xc: -format "%[fx:$dim/2]" info:`
echo "dim2=$dim2"

Code: Select all

convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite +write tmp1.png \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage +write tmp2.png -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100  +write tmp3.png \
     -fill white -draw "circle $dim2,$dim2 0,$dim2" +write tmp4.png -write mpr:circle \
     mpr:img +swap -alpha off -compose copy_opacity -composite +write tmp5.png \) \
-gravity northeast -compose over -composite +write tmp6.png \
\( mpr:circle -bordercolor black -border 3 -morphology edgein disk:5 -shave 3x3 +write tmp7.png \
     -background red -alpha shape +write tmp8.png \) \
-gravity northeast -compose over -composite \
result.png
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

fmw42 wrote: 2017-04-17T19:31:19-07:00
What are % , fx and \n ?
fx is the imagemagick calculation command
%[fx: ...] does the computation according to the formula you provide (in this case the minimum of the image width and height.
\n puts a line break in the returned result

Please see
http://www.imagemagick.org/script/fx.php
http://www.imagemagick.org/Usage/transform/#fx_escapes
What is xc ?
xc:somecolor tells IM to create a new image of some color. It is equivalent to canvas. It is needed as a placeholder for doing calculations. If no size is specified and no color is specified then it creates a one pixel transparent image. See links above and http://www.imagemagick.org/script/formats.php#pseudo
What are "circle $dim2,$dim2 0,$dim2"
-draw "circle xcenter,ycenter xcenter,ycenter+radius" is the command to draw a circle. See
http://www.imagemagick.org/Usage/draw/#primitives
http://www.imagemagick.org/Usage/draw/#circles
http://www.imagemagick.org/script/magic ... aphics.php
Why put the circle image into the alpha channel
I use the circle twice. The first time I put it into the alpha channel of the image so that where it is white , you see the image and where it is black, you get fully transparent pixels. That is how to make a circle of an image. It is really a square, but only the interior of the circle shows through.

The second time, I have taken the circle and generate an edge image to be a ring. I make the ring red and the rest as transparent. I then overlay it onto the previous resulting image.

Imagemagick can have a bit of a learning curve for novices, so please take some time to review the following:

viewtopic.php?f=1&t=9620
http://www.imagemagick.org/script/comma ... essing.php
http://www.imagemagick.org/Usage/reference.html
http://www.imagemagick.org/Usage/

One way to learn about such long commands is to put +write tmpX.png after each operator and see what the results look like. Then you can correlate the results to the commands.

So try this:

dim=`convert image_02.jpg -format "%[fx:min(w,h)]\n" info:`
echo "dim=$dim"

dim2=`convert xc: -format "%[fx:$dim/2]" info:`
echo "dim2=$dim2"

Code: Select all

convert scenery-008.jpg chinese_08_transp.png \
-gravity center -define compose:args=80 -compose blend -composite +write tmp1.png \
\( image_02.jpg -gravity center -crop ${dim}x${dim}+0+0 +repage +write tmp2.png -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100  +write tmp3.png \
     -fill white -draw "circle $dim2,$dim2 0,$dim2" +write tmp4.png -write mpr:circle \
     mpr:img +swap -alpha off -compose copy_opacity -composite +write tmp5.png \) \
-gravity northeast -compose over -composite +write tmp6.png \
\( mpr:circle -bordercolor black -border 3 -morphology edgein disk:5 -shave 3x3 +write tmp7.png \
     -background red -alpha shape +write tmp8.png \) \
-gravity northeast -compose over -composite \
result.png
Hi,

Lot of thanks for your explanation and links. I may take time to digest and absorb them.

Regards
satimis
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

Hi fmw42,

Ran following command;

Code: Select all

dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity southeast -compose over -composite \
result.png
flag.svg
https://www.dropbox.com/s/vhgcm16ztpko4k0/flag.svg?dl=0

hk_central.jpg
https://www.dropbox.com/s/999sexyk7yvp8 ... l.jpg?dl=0

text_05_png
https://www.dropbox.com/s/ivncdlukb1whg ... 5.png?dl=0

result.png
https://www.dropbox.com/s/q0b3pwcyc9and ... t.png?dl=0

How to reduce the flag to 80%?

I tried adding following command

Code: Select all

-draw "circle $dim2,$dim2 0,$dim2" -resize 80%
It only reduces the outer circumference of the flag NOT its total size.

A side question can I run ImageMagick to work on video? I'm now running OpenShot to work on video.

Thanks

Regards
satimis
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

Your command already reduces the flag size (and the circle) by 80%. But your command does not produce the result you show. To get both the circle diameter and the flag image both to be 80% smaller (which is what your result shows), I would do:

dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite -resize 80% \) \
-gravity southeast -compose over -composite \
result2.png

If you want something else, please clarify. Do you want the circle to be the same size, but the flag image smaller? Do you want the circle smaller, but the same size flag image? Or do you want both to be smaller, which is what my command and your result produced.

ImageMagick can work on video, but processing may be different. For simple commands you can process video to video, but IM will separate each frame and you may not have enough memory to hold your full video. It would have to be much different for the above example or you would have to loop over each frame and do the above processing for each frame, then recombine. Either way, it likely will be much less efficient.

I would suggest you look at ffmpeg for video processing. I know nothing about OpenShot
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

fmw42 wrote: 2017-04-29T18:19:49-07:00 Your command already reduces the flag size (and the circle) by 80%. But your command does not produce the result you show. To get both the circle diameter and the flag image both to be 80% smaller (which is what your result shows), I would do:

dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite -resize 80% \) \
-gravity southeast -compose over -composite \
result2.png
Hi,

Your command works for me. Thanks
Do you want the circle to be the same size, but the flag image smaller?
What syntax shall I add>
Do you want the circle smaller, but the same size flag image?
What syntax shall I add?
ImageMagick can work on video, but processing may be different. For simple commands you can process video to video, but IM will separate each frame and you may not have enough memory to hold your full video. It would have to be much different for the above example or you would have to loop over each frame and do the above processing for each frame, then recombine. Either way, it likely will be much less efficient.
Noted and thanks.
I would suggest you look at ffmpeg for video processing.
Thanks

Just googling a while and found following articles;

A Guide To Video And Audio Conversion Using FFmpeg
http://www.hongkiat.com/blog/ffmpeg-guide/

Useful FFmpeg Commands
https://www.labnol.org/internet/useful- ... nds/28490/

Converting Video Formats with FFmpeg
http://www.linuxjournal.com/article/8517

ffmpeg Documentation
https://ffmpeg.org/ffmpeg.html

19 ffmpeg commands for all needs
http://www.catswhocode.com/blog/19-ffmp ... -all-needs

Edit:
What syntax shall I add if I expect the flag being about 2~3mm away from the right window frame?

Regards
satimis
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

What syntax shall I add if I expect the flag being about 2~3mm away from the right window frame?
ImageMagick does not work in inches or centimeters. It works in pixels. So if you want the result to have the circle shifted from the bottom right by 20 pixels in x and y, then use -geometry.

dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite -resize 80% \) \
-gravity southeast -geometry +20+20 -compose over -composite \
result.png

Please read the documentation for -geometry and also see http://www.imagemagick.org/Usage/layers/#convert

For new users, see
viewtopic.php?f=1&t=9620
http://www.imagemagick.org/script/comma ... essing.php
http://www.imagemagick.org/Usage/reference.html
http://www.imagemagick.org/Usage/
satimis
Posts: 30
Joined: 2017-04-13T19:20:03-07:00
Authentication code: 1151

Re: Command for merging 2 image files

Post by satimis »

Hi fmw42,

Following command works for me with the flag on the sea;

Code: Select all

convert hk_central.jpg \( text_05.png -resize 80% \) -gravity northwest -d
efine compose:args=80 -compose blend -composite \( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" mpr:img +swap -alpha off -compose copy_opacity -composite -resize 40% \) -gravity southeast -geometry +20+20 -compose over -composite result16.png
result16.png
https://www.dropbox.com/s/3h9ziglv4kgro ... 6.png?dl=0

Thanks

If I expect adding further image;
chinese-flag-waving-gif-animation-10.gif
https://www.dropbox.com/s/8llbsxpgn610g ... 0.gif?dl=0

-gravity northeast -geometry +20+20

The Chinese flag will be waving on the right-top corner sky. What syntax will be added?

Thanks

I'm waiting for you advice on;

1)
Do you want the circle to be the same size, but the flag image smaller?

2)
Do you want the circle smaller, but the same size flag image?

Regards
satimis
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

Do you want the circle to be the same size, but the flag image smaller?
That would be hard, since the circle would be bigger than the flag image. Not worth doing that, since it would give odd results. But here is what I get:

dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -resize 80% -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity southeast -compose over -composite \
result.png
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

Do you want the circle smaller, but the same size flag image?
dim=`convert flag.svg -format "%[fx:0.8*min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity southeast -compose over -composite \
result.png
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Command for merging 2 image files

Post by fmw42 »

If I expect adding further image;
chinese-flag-waving-gif-animation-10.gif
This is harder and requires special techniques to add an animation to a static image. See http://www.imagemagick.org/Usage/anim_mods/#background. And it has to be saved as GIF not PNG. Note I have reduced the size of your waving flag by 33% to make it fit without overlapping the circle.


dim=`convert flag.svg -format "%[fx:min(w,h)]\n" info:`
dim2=`convert xc: -format "%[fx:$dim/2]" info:`
convert hk_central.jpg \( text_05.png -resize 80% \) \
-gravity northwest -define compose:args=80 -compose blend -composite \
\( flag.svg -gravity center -crop ${dim}x${dim}+0+0 +repage -write mpr:img +delete \) \
\( mpr:img -fill black -colorize 100 -fill white -draw "circle $dim2,$dim2 0,$dim2" \
mpr:img +swap -alpha off -compose copy_opacity -composite \) \
-gravity southeast -compose over -composite \
null: \
\( chinese-flag-waving-gif-animation-10.gif -coalesce -resize 33% \) \
-gravity northeast -geometry +20+20 -layers composite -layers Optimize \
result.gif
Post Reply