Search code examples
imagemagickimagemagick-convert

Nested ImageMagick commands


How would I append the following commands into a single command for ImageMagick?

convert -size 1024x1024 xc:none -draw "roundrectangle 0,0,1024,1024,40,40" png:- | convert AppStore.png -matte - -compose DstIn -composite Logo@3x.png
convert -resize 50% Logo@3x.png Logo@3x.png
convert -resize 50% Logo@3x.png Logo@2x.png
convert -resize 50% Logo@2x.png Logo.png

Solution

  • I think you probably want something like this:

    convert AppStore.png -matte                                                 \
       \( -size 1024x1024 xc:none -draw "roundrectangle 0,0,1024,1024,40,40" \) \
       -compose DstIn -composite -resize 50% -write MPR:basic                   \
       \( MPR:basic -resize 50% -write Logo@2x.png +delete \)                   \
       \( MPR:basic -resize 25% -write Logo.png    +delete \)                   \
       Logo@3x.png
    

    Or this if you want to avoid the MPR (Memory Program Register):

    convert AppStore.png -matte                                                 \
       \( -size 1024x1024 xc:none -draw "roundrectangle 0,0,1024,1024,40,40" \) \
       -compose DstIn -composite -resize 50%                                    \
       \( +clone -resize 50% -write Logo@2x.png +delete \)                      \
       \( +clone -resize 25% -write Logo.png    +delete \)                      \
       Logo@3x.png