You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.2 KiB
102 lines
2.2 KiB
#!/bin/sh |
|
# |
|
# Copyright (c) 2013 John Cunningham Bowler |
|
# |
|
# Last changed in libpng 1.6.0 [February 14, 2013] |
|
# |
|
# This code is released under the libpng license. |
|
# For conditions of distribution and use, see the disclaimer |
|
# and license in png.h |
|
# |
|
# Generate a set of PNG test images. The images are generated in a |
|
# sub-directory called 'tests' by default, however a command line argument will |
|
# change that name. The generation requires a built version of makepng in the |
|
# current directory. |
|
# |
|
usage(){ |
|
exec >&2 |
|
echo "$0 [<directory>]" |
|
echo ' Generate a set of PNG test files in "directory" ("tests" by default)' |
|
exit 1 |
|
} |
|
|
|
mp="$PWD/makepng" |
|
test -x "$mp" || { |
|
exec >&2 |
|
echo "$0: the 'makepng' program must exist" |
|
echo " in the directory within which this program:" |
|
echo " $mp" |
|
echo " is executed" |
|
usage |
|
} |
|
|
|
# Just one argument: the directory |
|
testdir="tests" |
|
test $# -gt 1 && { |
|
testdir="$1" |
|
shift |
|
} |
|
test $# -eq 0 || usage |
|
|
|
# Take care not to clobber something |
|
if test -e "$testdir" |
|
then |
|
test -d "$testdir" || usage |
|
else |
|
# mkdir -p isn't portable, so do the following |
|
mkdir "$testdir" 2>/dev/null || mkdir -p "$testdir" || usage |
|
fi |
|
|
|
# This fails in a very satisfactory way if it's not accessible |
|
cd "$testdir" |
|
:>"test$$.png" || { |
|
exec >&2 |
|
echo "$testdir: directory not writable" |
|
usage |
|
} |
|
rm "test$$.png" || { |
|
exec >&2 |
|
echo "$testdir: you have create but not write privileges here." |
|
echo " This is unexpected. You have a spurion; "'"'"test$$.png"'"'"." |
|
echo " You need to remove this yourself. Try a different directory." |
|
exit 1 |
|
} |
|
|
|
# Now call makepng ($mp) to create every file we can think of with a |
|
# reasonable name |
|
doit(){ |
|
for gamma in "" --sRGB --linear --1.8 |
|
do |
|
case "$gamma" in |
|
"") |
|
gname=;; |
|
--sRGB) |
|
gname="-srgb";; |
|
--linear) |
|
gname="-lin";; |
|
--1.8) |
|
gname="-18";; |
|
*) |
|
gname="-$gamma";; |
|
esac |
|
"$mp" $gamma "$1" "$2" "test-$1-$2$gname.png" |
|
done |
|
} |
|
# |
|
for ct in gray palette |
|
do |
|
for bd in 1 2 4 8 |
|
do |
|
doit "$ct" "$bd" |
|
done |
|
done |
|
# |
|
doit "gray" "16" |
|
# |
|
for ct in gray-alpha rgb rgb-alpha |
|
do |
|
for bd in 8 16 |
|
do |
|
doit "$ct" "$bd" |
|
done |
|
done
|
|
|