3 # Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
4 # dedicated to making software imaging solutions freely available.
6 # You may not use this file except in compliance with the License. You may
7 # obtain a copy of the License at
9 # http://www.imagemagick.org/script/license.php
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
17 . ${srcdir}/tests/common.sh
19 depth=`eval ${MAGICK} xc:none -format '%[fx:QuantumRange]' info:-`
20 if [ "X$depth" == "X255" ]; then
24 # how to generate a one pixel (average rose) color and output its values
25 in="rose: -scale 1x1" # a one pixel image of the average color.
26 out="-format '%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]' info:-"
30 # Colors to compare results to.
32 average=`eval ${MAGICK} "$in" -noop "$out"`
33 too_dark=`eval ${MAGICK} "$in" -colorspace RGB "$out"`
34 too_light=`eval ${MAGICK} "$in" -set colorspace RGB -colorspace sRGB "$out"`
35 format='%-30s%s\n' # results formating
36 format2='%-30s%-14s%s\n'
38 printf "$format2" "Average \"rose:\" Color" "$average" "sRGB(rose)"
39 printf "$format2" "Too Dark Color" "$too_dark" "sRGB(rose)->RGB result"
40 printf "$format2" "Too Light Color" "$too_light" "RGB(rose)->sRGB result"
46 # NOTE: as a extra validation on sanity checks below...
47 # eval ${MAGICK} "$in" -gamma .454545 "$out"
48 # produces a value of 74,25,20 which is close to 73,26,21 below.
49 # eval ${MAGICK} "$in" -gamma 2.2 "$out"
50 # produces a value of 198,158,151 whcih is close to 199,160,152 below.
52 # Actual values used below come from IM v6.5.4-7 colorspace conversions
55 if [ "X$average" != "X146,89,80" ]; then
56 echo "Sanity Failure: Average expected to be 145,89,80 - ABORTING"
59 if [ "X$too_dark" != "X73,26,21" ]; then
60 echo "Sanity Failure: Too Dark expected to be 73,26,21 - ABORTING"
63 if [ "X$too_light" != "X199,160,152" ]; then
64 echo "Sanity Failure: Too Light expected to be 199,160,152 - ABORTING"
73 test="${test}->$i" # format of the test being performed
74 cs="$cs -colorspace $i" # colorspace operations to perform test
76 color=`eval ${MAGICK} "$in" $cs "$out"`
78 if [ "X$color" = "X$average" ]; then
79 printf "$format" "$test" "good"
82 # Its failed the round-trip test, now report how it failed!
84 if [ "X$color" = "X$too_light" ]; then
85 printf "$format" "$test" "TOO_LIGHT"
88 if [ "X$color" = "X$too_dark" ]; then
89 printf "$format" "$test" "TOO_DARK"
92 printf "$format" "$test" "UNKNOWN COLOR (expect $average, got $color)"
97 test_color RGB sRGB # round trip (parts tested above)
100 test_color XYZ RGB sRGB
101 test_color RGB XYZ sRGB
104 test_color XYZ LAB sRGB
105 test_color LAB XYZ sRGB
106 test_color RGB LAB sRGB
107 test_color LAB RGB sRGB
117 test_color YCbCr sRGB
120 $error && exit 1 # return the overall error result