Class ColorSpaces


  • public final class ColorSpaces
    extends java.lang.Object
    A helper class for working with ICC color profiles and color spaces.

    Standard ICC color profiles are read from system-specific locations for known operating systems.

    Color profiles may be configured by placing a property-file com/twelvemonkeys/imageio/color/icc_profiles.properties on the classpath, specifying the full path to the profiles. ICC color profiles are probably already present on your system, or can be downloaded from ICC, Adobe or other places. *

    Example property file:

     # icc_profiles.properties
     ADOBE_RGB_1998=/path/to/Adobe RGB 1998.icc
     GENERIC_CMYK=/path/to/Generic CMYK.icc
     
    Version:
    $Id: ColorSpaces.java,v 1.0 24.01.11 17.51 haraldk Exp$
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  ColorSpaces.Key  
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.ref.WeakReference<java.awt.color.ICC_Profile> adobeRGB1998  
      private static java.util.Map<ColorSpaces.Key,​java.awt.color.ICC_ColorSpace> cache  
      static int CS_ADOBE_RGB_1998
      The Adobe RGB 1998 (or compatible) color space.
      static int CS_GENERIC_CMYK
      A best-effort "generic" CMYK color space.
      (package private) static boolean DEBUG  
      private static java.lang.ref.WeakReference<java.awt.color.ICC_Profile> genericCMYK  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private ColorSpaces()  
    • Field Detail

      • DEBUG

        static final boolean DEBUG
      • CS_ADOBE_RGB_1998

        public static final int CS_ADOBE_RGB_1998
        The Adobe RGB 1998 (or compatible) color space. Either read from disk or built-in.
        See Also:
        Constant Field Values
      • CS_GENERIC_CMYK

        public static final int CS_GENERIC_CMYK
        A best-effort "generic" CMYK color space. Either read from disk or built-in.
        See Also:
        Constant Field Values
      • adobeRGB1998

        private static java.lang.ref.WeakReference<java.awt.color.ICC_Profile> adobeRGB1998
      • genericCMYK

        private static java.lang.ref.WeakReference<java.awt.color.ICC_Profile> genericCMYK
      • cache

        private static final java.util.Map<ColorSpaces.Key,​java.awt.color.ICC_ColorSpace> cache
    • Constructor Detail

      • ColorSpaces

        private ColorSpaces()
    • Method Detail

      • createColorSpace

        public static java.awt.color.ICC_ColorSpace createColorSpace​(java.awt.color.ICC_Profile profile)
        Creates an ICC color space from the given ICC color profile.

        For standard Java color spaces, the built-in instance is returned. Otherwise, color spaces are looked up from cache and created on demand.

        Parameters:
        profile - the ICC color profile. May not be null.
        Returns:
        an ICC color space
        Throws:
        java.lang.IllegalArgumentException - if profile is null.
        java.awt.color.CMMException - if profile is invalid.
      • getInternalCS

        static java.awt.color.ICC_ColorSpace getInternalCS​(int profileCSType,
                                                           byte[] profileHeader)
      • getCachedOrCreateCS

        private static java.awt.color.ICC_ColorSpace getCachedOrCreateCS​(java.awt.color.ICC_Profile profile,
                                                                         byte[] profileHeader)
      • getCachedCS

        private static java.awt.color.ICC_ColorSpace getCachedCS​(ColorSpaces.Key profileKey)
      • getCachedCS

        static java.awt.color.ICC_ColorSpace getCachedCS​(byte[] profileHeader)
      • validateColorSpace

        static void validateColorSpace​(java.awt.color.ICC_ColorSpace cs)
      • getColorSpace

        public static java.awt.color.ColorSpace getColorSpace​(int colorSpace)
        Returns the color space specified by the given color space constant.

        For standard Java color spaces, the built-in instance is returned. Otherwise, color spaces are looked up from cache and created on demand.

        Parameters:
        colorSpace - the color space constant.
        Returns:
        the ColorSpace specified by the color space constant.
        Throws:
        java.lang.IllegalArgumentException - if colorSpace is not one of the defined color spaces (CS_*).
        See Also:
        ColorSpace, CS_ADOBE_RGB_1998, CS_GENERIC_CMYK