Overlaying two images with automatic resize using ImageMagick

前端 未结 1 597
南旧
南旧 2020-12-30 04:33

Is there are way to automatically resize the overlay image according to background size when overlaying images using ImageMagick? I am using the following code now:

相关标签:
1条回答
  • 2020-12-30 04:40

    First of all, overlay and background do not need to be the same size for composite to work. For example, given these two images:

    sydney.png (352x288):

    sydney

    jet2.png (128x129):

    jet2

    Try the following commands:

    convert -size 352x288 -composite sydney.png jet2.png -geometry 64x64+176+144 -depth 8 test.png
    
    convert -size 352x288 -composite sydney.png jet2.png -geometry 32x32+176+144 -depth 8 test.png
    
    • -size specifies the output image dimensions
    • -geometry specifies the dimensions and location of the foreground

    This is what I get for the first command:

    result

    EDIT

    Here's a bash script to do it all for you in one line:

    #!/bin/bash
    if [ -z "$3" ]
    then
        echo "usage: $0 background.png foreground.png output.png"
        exit 1
    fi
    bg_size=`identify -format '%wx%h' "$1"`
    convert -size $bg_size -composite "$1" "$2" -geometry $bg_size+0+0 -depth 8 "$3"
    
    0 讨论(0)
提交回复
热议问题