| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package org.apache.commons.imaging.color; |
| |
| import org.apache.commons.imaging.util.Debug; |
| |
| import junit.framework.TestCase; |
| |
| public class ColorConversionsTest extends TestCase |
| { |
| private static final int SAMPLE_RGBS[] = { |
| 0xffffffff, |
| 0xff000000, |
| 0xffff0000, |
| 0xff00ff00, |
| 0xff0000ff, |
| 0xffff00ff, |
| 0xfff0ff00, |
| 0xff00ffff, |
| 0x00000000, |
| 0xff7f7f7f, |
| }; |
| |
| public void testRGBtoCMYK() throws Exception |
| { |
| for (int i = 0; i < SAMPLE_RGBS.length; i++) |
| { |
| int rgb = SAMPLE_RGBS[i]; |
| |
| ColorCmy cmy = ColorConversions.convertRGBtoCMY(rgb); |
| ColorCmyk cmyk = ColorConversions.convertCMYtoCMYK(cmy); |
| ColorCmy cmyk_cmy = ColorConversions.convertCMYKtoCMY(cmyk); |
| int cmyk_cmy_rgb = ColorConversions.convertCMYtoRGB(cmyk_cmy); |
| |
| Debug.debug("cmy", cmy); |
| Debug.debug("cmyk", cmyk); |
| Debug.debug("cmyk_cmy", cmyk_cmy); |
| Debug.debug("cmyk_cmy_rgb", cmyk_cmy_rgb + " (" + Integer.toHexString(cmyk_cmy_rgb) + ")"); |
| |
| assertEquals((0xffffff & cmyk_cmy_rgb), (0xffffff & rgb)); |
| } |
| } |
| |
| public void testRGBtoHSL() throws Exception |
| { |
| for (int i = 0; i < SAMPLE_RGBS.length; i++) |
| { |
| int rgb = SAMPLE_RGBS[i]; |
| |
| ColorHsl hsl = ColorConversions.convertRGBtoHSL(rgb); |
| int hsl_rgb = ColorConversions.convertHSLtoRGB(hsl); |
| |
| Debug.debug("hsl", hsl); |
| Debug.debug("hsl_rgb", hsl_rgb + " (" + Integer.toHexString(hsl_rgb) + ")"); |
| |
| assertEquals((0xffffff & hsl_rgb), (0xffffff & rgb)); |
| } |
| } |
| |
| public void testRGBtoHSV() throws Exception |
| { |
| for (int i = 0; i < SAMPLE_RGBS.length; i++) |
| { |
| int rgb = SAMPLE_RGBS[i]; |
| |
| ColorHsv hsv = ColorConversions.convertRGBtoHSV(rgb); |
| int hsv_rgb = ColorConversions.convertHSVtoRGB(hsv); |
| |
| Debug.debug("hsv", hsv); |
| Debug.debug("hsv_rgb", hsv_rgb + " (" + Integer.toHexString(hsv_rgb) + ")"); |
| |
| assertEquals((0xffffff & hsv_rgb), (0xffffff & rgb)); |
| } |
| } |
| |
| public void testXYZ() throws Exception |
| { |
| for (int i = 0; i < SAMPLE_RGBS.length; i++) |
| { |
| int rgb = SAMPLE_RGBS[i]; |
| |
| ColorXyz xyz = ColorConversions.convertRGBtoXYZ(rgb); |
| int xyz_rgb = ColorConversions.convertXYZtoRGB(xyz); |
| |
| Debug.debug(); |
| Debug.debug("rgb", rgb + " (" + Integer.toHexString(rgb) + ")"); |
| Debug.debug("xyz", xyz); |
| Debug.debug("xyz_rgb", xyz_rgb + " (" + Integer.toHexString(xyz_rgb) + ")"); |
| |
| assertEquals((0xffffff & xyz_rgb), (0xffffff & rgb)); |
| |
| |
| ColorCieLab cielab = ColorConversions.convertXYZtoCIELab(xyz); |
| ColorXyz cielab_xyz = ColorConversions.convertCIELabtoXYZ(cielab); |
| int cielab_xyz_rgb = ColorConversions.convertXYZtoRGB(cielab_xyz); |
| |
| Debug.debug("cielab", cielab); |
| Debug.debug("cielab_xyz", cielab_xyz); |
| Debug.debug("cielab_xyz_rgb", cielab_xyz_rgb + " (" + Integer.toHexString(cielab_xyz_rgb) + ")"); |
| |
| assertEquals((0xffffff & cielab_xyz_rgb), (0xffffff & rgb)); |
| |
| |
| ColorHunterLab hunterlab = ColorConversions.convertXYZtoHunterLab(xyz); |
| ColorXyz hunterlab_xyz = ColorConversions.convertHunterLabtoXYZ(hunterlab); |
| int hunterlab_xyz_rgb = ColorConversions.convertXYZtoRGB(hunterlab_xyz); |
| |
| Debug.debug("hunterlab", hunterlab); |
| Debug.debug("hunterlab_xyz", hunterlab_xyz); |
| Debug.debug("hunterlab_xyz_rgb", hunterlab_xyz_rgb + " (" + Integer.toHexString(hunterlab_xyz_rgb) + ")"); |
| |
| assertEquals((0xffffff & hunterlab_xyz_rgb), (0xffffff & rgb)); |
| |
| |
| ColorCieLch cielch = ColorConversions.convertCIELabtoCIELCH(cielab); |
| ColorCieLab cielch_cielab = ColorConversions.convertCIELCHtoCIELab(cielch); |
| |
| Debug.debug("cielch", cielch); |
| Debug.debug("cielch_cielab", cielch_cielab); |
| |
| ColorCieLuv cieluv = ColorConversions.convertXYZtoCIELuv(xyz); |
| ColorXyz cieluv_xyz = ColorConversions.convertCIELuvtoXYZ(cieluv); |
| |
| Debug.debug("cieluv", cieluv); |
| Debug.debug("cieluv_xyz", cieluv_xyz); |
| } |
| } |
| } |