diff options
Diffstat (limited to 'apps/plugins/puzzles/icons/crop.sh')
-rwxr-xr-x | apps/plugins/puzzles/icons/crop.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/apps/plugins/puzzles/icons/crop.sh b/apps/plugins/puzzles/icons/crop.sh new file mode 100755 index 0000000000..0d15d3c9b9 --- /dev/null +++ b/apps/plugins/puzzles/icons/crop.sh | |||
@@ -0,0 +1,37 @@ | |||
1 | #!/bin/sh | ||
2 | |||
3 | # Crop one image into another, after first checking that the source | ||
4 | # image has the expected size in pixels. | ||
5 | # | ||
6 | # This is used in the Puzzles icon build scripts to construct icons | ||
7 | # which are zoomed in on a particular sub-area of the puzzle's | ||
8 | # basic screenshot. This way I can define crop areas in pixels, | ||
9 | # while not having to worry too much that if I adjust the source | ||
10 | # puzzle so as to alter the layout the crop area might start | ||
11 | # hitting the wrong bit of picture. Most layout changes I can | ||
12 | # conveniently imagine will also alter the overall image size, so | ||
13 | # this script will give a build error and alert me to the fact that | ||
14 | # I need to fiddle with the icon makefile. | ||
15 | |||
16 | infile="$1" | ||
17 | outfile="$2" | ||
18 | insize="$3" | ||
19 | crop="$4" | ||
20 | |||
21 | # Special case: if no input size or crop parameter was specified at | ||
22 | # all, we just copy the input to the output file. | ||
23 | |||
24 | if test $# -lt 3; then | ||
25 | cp "$infile" "$outfile" | ||
26 | exit 0 | ||
27 | fi | ||
28 | |||
29 | # Check the input image size. | ||
30 | realsize=`identify -format %wx%h "$infile"` | ||
31 | if test "x$insize" != "x$realsize"; then | ||
32 | echo "crop.sh: '$infile' has wrong initial size: $realsize != $insize" >&2 | ||
33 | exit 1 | ||
34 | fi | ||
35 | |||
36 | # And crop. | ||
37 | convert -crop "$crop" "$infile" "$outfile" | ||