Fred's ImageMagick Scripts



 

 

INTERWEAVE


Interleaves two images together in swaths

Download Script

last modified: July 02, 2011



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.

ARGUMENTS:

-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.


EXAMPLES


Image 1

Image 2

 

 

Arguments:
-m column -b 64

Arguments:
-m row -b 64

Arguments:
-m both -b 64

Arguments:
-m column -b 32

Arguments:
-m row -b 32

Arguments:
-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