--- old/src/java.desktop/share/classes/java/awt/color/ICC_ProfileRGB.java 2018-10-24 21:12:18.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/color/ICC_ProfileRGB.java 2018-10-24 21:12:18.000000000 -0700 @@ -1,5 +1,5 @@ /* - * 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 @@ -23,8 +23,7 @@ * questions. */ -/* - ********************************************************************** +/* ******************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) Eastman Kodak Company, 1997 *** @@ -40,30 +39,25 @@ 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: - * - * 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. *

- * 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. *

* 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. *

  *
  *                 linearR = redTRC[deviceR]
@@ -81,12 +75,9 @@
  *
  * 
* 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 { @@ -107,12 +98,10 @@ */ 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); @@ -120,7 +109,7 @@ /** * Constructs a new {@code ICC_ProfileRGB} from a - * ProfileDeferralInfo object. + * {@code ProfileDeferralInfo} object. * * @param pdi */ @@ -128,31 +117,28 @@ 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}. *

- * 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 - * components of the profile's {@code redColorantTag}, - * {@code greenColorantTag}, and {@code blueColorantTag}. + * @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} */ public float[][] getMatrix() { float[][] theMatrix = new float[3][3]; @@ -174,28 +160,27 @@ } /** - * 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}. *

- * 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: *

      *
      *                                           gamma
      *          linearComponent = deviceComponent
      *
-     *
- * @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. + * + * + * @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; @@ -224,34 +209,29 @@ } /** - * 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. * - * 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. + * @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;