Fred's ImageMagick Scripts


    Copyright © Fred Weinhaus

    My scripts are available free of charge for non-commercial use, ONLY.

    For use of my scripts in commercial (for-profit) environments or non-free applications, please contact me (Fred Weinhaus) for licensing arrangements. My email address is fmw at alink dot net.

    If you: 1) redistribute, 2) incorporate any of these scripts into other free applications or 3) reprogram them in another scripting language, then you must contact me for permission, especially if the result might be used in a commercial or for-profit environment.

    Usage, whether stated or not in the script, is restricted to the above licensing arrangements. It is also subject, in a subordinate manner, to the ImageMagick license, which can be found at:


Interleaves two images together in swaths

Download Script

last modified: April 25, 2015

USAGE: interweave [-m mode] [-b bandsize] infile1 infile2 outfile
USAGE: interweave [-h or -help]

-m .... mode ............. mode of effect; choices are: row (or r),
.......................... column (or col or c), both (or b); default=both
-b .... bandsize ......... size of bands in pixels; integer>0;
.......................... default=half the size of the images.

....... The two input images must be the same size.

PURPOSE: To interleave two images together in swaths.

DESCRIPTION: INTERWEAVE interleaves two images together in swaths. The swaths may be interleaved by row or by column or both together making a checkerboard pattern.


-m mode ... MODE of interweave effect. The choices are: row (or r), column or (col or c), both (or b). The default=both

-b bandsize ... Size of bands or swaths in pixels. Values are integers>0. The default=half the size of the images.

Both images must be the same size.

CAVEAT: No guarantee that this script will work on all platforms, nor that trapping of inconsistent parameters is complete and foolproof. Use At Your Own Risk.


Image 1

Image 2



-m column -b 64

-m row -b 64

-m both -b 64

-m column -b 32

-m row -b 32

-m both -b 32

What the script does is as follows:

  • Creates a black/white checker tile image
  • Extends the tile to fill out to the size of the images
  • Composites the two images using the tiled pattern as a mask

This is equivalent to the following IM commands for the case of mode=column

  • w1=`convert $infile1 -ping -format "%w" info:`
  • h1=`convert $infile1 -ping -format "%h" info:`
  • w2=`convert $infile2 -ping -format "%w" info:`
  • h2=`convert $infile2 -ping -format "%h" info:`
  • [ $w1 -ne $w2 ] && errMsg "--- FILES $infile1 AND $infile2 ARE NOT THE SAME WIDTH ---"
  • [ $h1 -ne $h2 ] && errMsg "--- FILES $infile1 AND $infile2 ARE NOT THE SAME HEIGHT ---"
  • dim="${w1}x${h1}"
  • convert $infile1 $infile2 \
    \( -size ${bandsize}x1 xc:black xc:white +append \
    -write mpr:check +delete \
    -size $dim tile:mpr:check \) \
    -composite $outfile