source: ImageMagick/branches/ImageMagick-6/tests/validate-colorspace.sh @ 7625

Revision 7625, 3.3 KB checked in by anthony, 14 months ago (diff)

Fix Gaussian Filter which was causing problems with Variable Blur

  • Property svn:executable set to *
Line 
1#!/bin/bash
2#
3#  Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
4#  dedicated to making software imaging solutions freely available.
5#
6#  You may not use this file except in compliance with the License.  You may
7#  obtain a copy of the License at
8#
9#    http://www.imagemagick.org/script/license.php
10#
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.
16#
17. ${srcdir}/tests/common.sh
18
19# Q16 is most common do test it!
20#depth=`eval convert xc:none -format '%[fx:QuantumRange]' info:-`
21#if [ "$depth" == "65535" ]; then
22#  exit 0
23#fi
24
25# how to generate a one pixel (average rose) color and output its values
26in="rose: -scale 1x1"    # a one pixel image of the average color.
27out="-format '%[fx:int(255*r+.5)],%[fx:int(255*g+.5)],%[fx:int(255*b+.5)]' info:-"
28
29# ----------------
30
31# Colors to compare results to.
32error=false
33average=`eval ${CONVERT} "$in" -noop "$out"`
34too_light=`eval ${CONVERT} "$in" -colorspace RGB "$out"`
35too_dark=`eval ${CONVERT} "$in" -set colorspace RGB -colorspace sRGB "$out"`
36format='%-30s%s\n'        # results formating
37format2='%-30s%-14s%s\n'
38
39printf "$format2" "Average \"rose:\" Color"  "$average" "sRGB(rose)"
40printf "$format2" "Too Light Color" "$too_light" "sRGB(rose)->RGB result"
41printf "$format2" "Too Dark Color"  "$too_dark"  "RGB(rose)->sRGB result"
42echo ''
43
44#
45# Sanity checks
46#
47# NOTE: as a extra validation on sanity checks below...
48#    eval ${CONVERT} "$in" -gamma .454545 "$out"
49# produces a value of  74,25,20   which is close to 73,26,21 below.
50#    eval ${CONVERT} "$in" -gamma 2.2 "$out"
51# produces a value of  198,158,151  whcih is close to 199,160,152 below.
52#
53# Actual values used below come from IM v6.5.4-7 colorspace conversions
54#
55if [ "X$average" != "X146,89,80" ]; then
56  echo "Sanity Failure: Average expected to be 145,89,80 - ABORTING"
57  error=true
58fi
59if [ "X$too_light" != "X73,26,21" ]; then
60  echo "Sanity Failure: Too Light expected to be 73,26,21 - ABORTING"
61  error=true
62fi
63if [ "X$too_dark" != "X199,160,152" ]; then
64  echo "Sanity Failure: Too Dark expected to be 199,159,152 - ABORTING"
65  error=true
66fi
67$error && exit 1
68
69test_color() {
70  test="sRGB(rose)"
71  cs='';
72  for i in "$@"; do
73    test="${test}->$i"        # format of the test being performed
74    cs="$cs -colorspace $i"   # colorspace operations to perform test
75  done
76  color=`eval ${CONVERT} "$in" $cs "$out"`
77
78  if [ "X$color" = "X$average" ]; then
79    printf "$format" "$test" "good"
80    return
81  fi
82  error=false
83  if [ "X$color" = "X$too_light" ]; then
84    printf "$format" "$test" "TOO_LIGHT"
85    return
86  fi
87  if [ "X$color" = "X$too_dark" ]; then
88    printf "$format" "$test" "TOO_DARK"
89    return
90  fi
91  printf "$format" "$test" "UNKNOWN COLOR (expect $average, got $color)"
92}
93
94# ----------------
95
96test_color RGB sRGB
97test_color XYZ sRGB
98test_color XYZ RGB sRGB
99
100test_color CMY   sRGB
101test_color CMYK  sRGB
102test_color HSL   sRGB
103test_color HSB   sRGB
104test_color HWB   sRGB
105test_color LAB   sRGB
106test_color Log   sRGB
107test_color YIQ   sRGB
108test_color YUV   sRGB
109test_color YCbCr sRGB
110test_color OHTA  sRGB
111
112$error && exit 1 # return the overall error result
113exit 0
Note: See TracBrowser for help on using the repository browser.