< prev index next >

src/java.desktop/share/classes/java/awt/color/ICC_ProfileRGB.java

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.  Oracle designates this

@@ -21,12 +21,11 @@
  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 
-/*
- **********************************************************************
+/* ********************************************************************
  **********************************************************************
  **********************************************************************
  *** COPYRIGHT (c) Eastman Kodak Company, 1997                      ***
  *** As  an unpublished  work pursuant to Title 17 of the United    ***
  *** States Code.  All rights reserved.                             ***

@@ -38,34 +37,29 @@
 
 import sun.java2d.cmm.Profile;
 import sun.java2d.cmm.ProfileDeferralInfo;
 
 /**
- *
- * The ICC_ProfileRGB class is a subclass of the ICC_Profile class
- * that represents profiles which meet the following criteria:
- * <ul>
- * <li>The profile's color space type is RGB.</li>
- * <li>The profile includes the {@code redColorantTag},
- * {@code greenColorantTag}, {@code blueColorantTag},
- * {@code redTRCTag}, {@code greenTRCTag},
- * {@code blueTRCTag}, and {@code mediaWhitePointTag} tags.</li>
- * </ul>
- * The {@code ICC_Profile getInstance} method will
- * return an {@code ICC_ProfileRGB} object when these conditions are met.
- * Three-component, matrix-based input profiles and RGB display profiles are
- * examples of this type of profile.
+ * The {@code ICC_ProfileRGB} class is a subclass of the {@code ICC_Profile}
+ * class that represents profiles which meet the following criteria: the
+ * profile's color space type is RGB, and the profile includes the
+ * {@code redColorantTag}, {@code greenColorantTag}, {@code blueColorantTag},
+ * {@code redTRCTag}, {@code greenTRCTag}, {@code blueTRCTag},
+ * {@code mediaWhitePointTag} tags. The {@code getInstance} methods in the
+ * {@code ICC_Profile} class will return an {@code ICC_ProfileRGB} object when
+ * the above conditions are met. Three-component, matrix-based input profiles
+ * and RGB display profiles are examples of this type of profile.
  * <p>
- * This profile class provides color transform matrices and lookup tables
- * that Java or native methods can use directly to
- * optimize color conversion in some cases.
+ * The advantage of this class is that it provides color transform matrices and
+ * lookup tables that Java or native methods can use directly to optimize color
+ * conversion in some cases.
  * <p>
  * To transform from a device profile color space to the CIEXYZ Profile
- * Connection Space, each device color component is first linearized by
- * a lookup through the corresponding tone reproduction curve (TRC).
- * The resulting linear RGB components are converted to the CIEXYZ PCS
- * using a a 3x3 matrix constructed from the RGB colorants.
+ * Connection Space, each device color component is first linearized by a lookup
+ * through the corresponding tone reproduction curve (TRC). The resulting linear
+ * RGB components are converted to the CIEXYZ PCS using a a 3x3 matrix
+ * constructed from the RGB colorants.
  * <pre>
  *
  * &nbsp;               linearR = redTRC[deviceR]
  *
  * &nbsp;               linearG = greenTRC[deviceG]

@@ -79,16 +73,13 @@
  * &nbsp;[        ]     [                                               ] [           ]
  * &nbsp;[_ PCSZ _]     [_ redColorantZ  greenColorantZ  blueColorantZ _] [_ linearB _]
  *
  * </pre>
  * The inverse transform is performed by converting PCS XYZ components to linear
- * RGB components through the inverse of the above 3x3 matrix, and then converting
- * linear RGB to device RGB through inverses of the TRCs.
+ * RGB components through the inverse of the above 3x3 matrix, and then
+ * converting linear RGB to device RGB through inverses of the TRCs.
  */
-
-
-
 public class ICC_ProfileRGB
 extends ICC_Profile {
 
     static final long serialVersionUID = 8505067385152579334L;
 

@@ -105,56 +96,51 @@
     /**
      * Used to get a gamma value or TRC for the blue component.
      */
     public static final int BLUECOMPONENT = 2;
 
-
     /**
      * Constructs an new {@code ICC_ProfileRGB} from a CMM ID.
      *
-     * @param p The CMM ID for the profile.
-     *
+     * @param p the CMM ID for the profile.
      */
     ICC_ProfileRGB(Profile p) {
         super(p);
     }
 
     /**
      * Constructs a new {@code ICC_ProfileRGB} from a
-     * ProfileDeferralInfo object.
+     * {@code ProfileDeferralInfo} object.
      *
      * @param pdi
      */
     ICC_ProfileRGB(ProfileDeferralInfo pdi) {
         super(pdi);
     }
 
-
     /**
      * Returns an array that contains the components of the profile's
      * {@code mediaWhitePointTag}.
      *
-     * @return A 3-element {@code float} array containing the x, y,
-     * and z components of the profile's {@code mediaWhitePointTag}.
+     * @return a 3-element {@code float} array containing the x, y, and z
+     *         components of the profile's {@code mediaWhitePointTag}
      */
     public float[] getMediaWhitePoint() {
         return super.getMediaWhitePoint();
     }
 
-
     /**
-     * Returns a 3x3 {@code float} matrix constructed from the
-     * X, Y, and Z components of the profile's {@code redColorantTag},
+     * Returns a 3x3 {@code float} matrix constructed from the X, Y, and Z
+     * components of the profile's {@code redColorantTag},
      * {@code greenColorantTag}, and {@code blueColorantTag}.
      * <p>
-     * This matrix can be used for color transforms in the forward
-     * direction of the profile--from the profile color space
-     * to the CIEXYZ PCS.
+     * This matrix can be used for color transforms in the forward direction of
+     * the profile--from the profile color space to the CIEXYZ PCS.
      *
-     * @return A 3x3 {@code float} array that contains the x, y, and z
+     * @return a 3x3 {@code float} array that contains the x, y, and z
      * components of the profile's {@code redColorantTag},
-     * {@code greenColorantTag}, and {@code blueColorantTag}.
+     *         {@code greenColorantTag}, and {@code blueColorantTag}
      */
     public float[][] getMatrix() {
         float[][] theMatrix = new float[3][3];
         float[] tmpMatrix;
 

@@ -172,32 +158,31 @@
         theMatrix[2][2] = tmpMatrix[2];
         return theMatrix;
     }
 
     /**
-     * Returns a gamma value representing the tone reproduction curve
-     * (TRC) for a particular component.  The component parameter
-     * must be one of REDCOMPONENT, GREENCOMPONENT, or BLUECOMPONENT.
+     * Returns a gamma value representing the tone reproduction curve (TRC) for
+     * a particular component. The component parameter must be one of
+     * {@code REDCOMPONENT}, {@code GREENCOMPONENT}, or {@code BLUECOMPONENT}.
      * <p>
-     * If the profile
-     * represents the TRC for the corresponding component
-     * as a table rather than a single gamma value, an
-     * exception is thrown.  In this case the actual table
-     * can be obtained through the {@link #getTRC(int)} method.
-     * When using a gamma value,
-     * the linear component (R, G, or B) is computed as follows:
+     * If the profile represents the TRC for the corresponding component as a
+     * table rather than a single gamma value, an exception is thrown. In this
+     * case the actual table can be obtained through the {@link #getTRC(int)}
+     * method. When using a gamma value, the linear component (R, G, or B) is
+     * computed as follows:
      * <pre>
      *
      * &nbsp;                                         gamma
      * &nbsp;        linearComponent = deviceComponent
      *
-     *</pre>
-     * @param component The {@code ICC_ProfileRGB} constant that
-     * represents the component whose TRC you want to retrieve
-     * @return the gamma value as a float.
-     * @exception ProfileDataException if the profile does not specify
-     *            the corresponding TRC as a single gamma value.
+     * </pre>
+     *
+     * @param  component the {@code ICC_ProfileRGB} constant that represents the
+     *         component whose TRC you want to retrieve
+     * @return the gamma value as a float
+     * @throws ProfileDataException if the profile does not specify the
+     *         corresponding TRC as a single gamma value
      */
     public float getGamma(int component) {
     float theGamma;
     int theSignature;
 

@@ -222,38 +207,33 @@
 
         return theGamma;
     }
 
     /**
-     * Returns the TRC for a particular component as an array.
-     * Component must be {@code REDCOMPONENT},
-     * {@code GREENCOMPONENT}, or {@code BLUECOMPONENT}.
-     * Otherwise the returned array
-     * represents a lookup table where the input component value
-     * is conceptually in the range [0.0, 1.0].  Value 0.0 maps
-     * to array index 0 and value 1.0 maps to array index length-1.
-     * Interpolation might be used to generate output values for
-     * input values that do not map exactly to an index in the
-     * array.  Output values also map linearly to the range [0.0, 1.0].
-     * Value 0.0 is represented by an array value of 0x0000 and
-     * value 1.0 by 0xFFFF.  In other words, the values are really unsigned
-     * {@code short} values even though they are returned in a
+     * Returns the TRC for a particular component as an array. Component must be
+     * {@code REDCOMPONENT}, {@code GREENCOMPONENT}, or {@code BLUECOMPONENT}.
+     * Otherwise the returned array represents a lookup table where the input
+     * component value is conceptually in the range [0.0, 1.0]. Value 0.0 maps
+     * to array index 0 and value 1.0 maps to array index {@code length-1}.
+     * Interpolation might be used to generate output values for input values
+     * that do not map exactly to an index in the array. Output values also map
+     * linearly to the range [0.0, 1.0]. Value 0.0 is represented by an array
+     * value of 0x0000 and value 1.0 by 0xFFFF. In other words, the values are
+     * really unsigned {@code short} values even though they are returned in a
      * {@code short} array.
-     *
-     * If the profile has specified the corresponding TRC
-     * as linear (gamma = 1.0) or as a simple gamma value, this method
-     * throws an exception.  In this case, the {@link #getGamma(int)}
-     * method should be used to get the gamma value.
-     *
-     * @param component The {@code ICC_ProfileRGB} constant that
-     * represents the component whose TRC you want to retrieve:
-     * {@code REDCOMPONENT}, {@code GREENCOMPONENT}, or
-     * {@code BLUECOMPONENT}.
-     *
-     * @return a short array representing the TRC.
-     * @exception ProfileDataException if the profile does not specify
-     *            the corresponding TRC as a table.
+     * <p>
+     * If the profile has specified the corresponding TRC as linear (gamma =
+     * 1.0) or as a simple gamma value, this method throws an exception. In this
+     * case, the {@link #getGamma(int)} method should be used to get the gamma
+     * value.
+     *
+     * @param  component the {@code ICC_ProfileRGB} constant that represents the
+     *         component whose TRC you want to retrieve: {@code REDCOMPONENT},
+     *         {@code GREENCOMPONENT}, or {@code BLUECOMPONENT}
+     * @return a short array representing the TRC
+     * @throws ProfileDataException if the profile does not specify the
+     *         corresponding TRC as a table
      */
     public short[] getTRC(int component) {
     short[] theTRC;
     int theSignature;
 
< prev index next >