Thursday, May 15, 2014

Quick and Dirty Checkerboard Spritesheet

Need a checkerboard transition but don't want to code it out? Want to use a spritesheet for it instead? Don't want to have to do it by hand? Then this script is for you!

Just came up with a quick and dirty script using ImageMagick to generate a checkerboard transition spritesheet.
#!/bin/bash
# Quick script to generate a checkerboard transition spritesheet with ImageMagick.
# This script makes PNGs with the names 'tile*.png', 'tmp.png', 'phase1_*.png',
# 'phase2_*.png' and 'checkerboard.png' in the current directory.
SIDE=20 # Width in pixels for each square
MAXN=5 # Number of steps - 1 to fill a square
TILES_ACROSS=16 # Number of squares across the checkerboard
TILES_DOWN=9 # Number of squares down the checkerboard
convert -size "$SIDE"x"$SIDE" xc:none tile0.png
for i in `seq 1 $MAXN`
do
WIDTH=$(($i*$SIDE/$MAXN))
convert -size "$SIDE"x"$SIDE" xc:none -fill black -draw "rectangle 0,0 $WIDTH,$SIDE" tile$i.png
done
IMG_W=$(($TILES_ACROSS*$SIDE))
IMG_H=$(($TILES_DOWN*$SIDE))
for i in `seq 0 $MAXN`
do
montage tile0.png tile$i.png tile$i.png tile0.png -background none -tile 2x2 -geometry +0+0 tmp.png
convert -size "$IMG_W"x"$IMG_H" -background transparent tile:tmp.png phase1_$i.png
montage tile$i.png tile$MAXN.png tile$MAXN.png tile$i.png -background none -tile 2x2 -geometry +0+0 tmp.png
convert -size "$IMG_W"x"$IMG_H" -background transparent tile:tmp.png phase2_$i.png
done
montage phase1_*.png phase2_*.png -background none -geometry +0+0 checkerboard.png
view raw checkerboard.sh hosted with ❤ by GitHub
Not the best way to do things, but at least it serves to help me remember the ImageMagick options that I tend to use.

No comments :

Post a Comment