38 lines
1.1 KiB
Bash
38 lines
1.1 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
# Crop one image into another, after first checking that the source
|
||
|
# image has the expected size in pixels.
|
||
|
#
|
||
|
# This is used in the Puzzles icon build scripts to construct icons
|
||
|
# which are zoomed in on a particular sub-area of the puzzle's
|
||
|
# basic screenshot. This way I can define crop areas in pixels,
|
||
|
# while not having to worry too much that if I adjust the source
|
||
|
# puzzle so as to alter the layout the crop area might start
|
||
|
# hitting the wrong bit of picture. Most layout changes I can
|
||
|
# conveniently imagine will also alter the overall image size, so
|
||
|
# this script will give a build error and alert me to the fact that
|
||
|
# I need to fiddle with the icon makefile.
|
||
|
|
||
|
infile="$1"
|
||
|
outfile="$2"
|
||
|
insize="$3"
|
||
|
crop="$4"
|
||
|
|
||
|
# Special case: if no input size or crop parameter was specified at
|
||
|
# all, we just copy the input to the output file.
|
||
|
|
||
|
if test $# -lt 3; then
|
||
|
cp "$infile" "$outfile"
|
||
|
exit 0
|
||
|
fi
|
||
|
|
||
|
# Check the input image size.
|
||
|
realsize=`identify -format %wx%h "$infile"`
|
||
|
if test "x$insize" != "x$realsize"; then
|
||
|
echo "crop.sh: '$infile' has wrong initial size: $realsize != $insize" >&2
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# And crop.
|
||
|
convert -crop "$crop" "$infile" "$outfile"
|