--- old/src/java.desktop/share/classes/java/awt/color/CMMException.java 2018-10-24 21:12:03.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/color/CMMException.java 2018-10-24 21:12:02.000000000 -0700 @@ -1,4 +1,5 @@ /* + * 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 @@ -22,13 +23,7 @@ * questions. */ -/* - Created by gbp, October 25, 1997 - - * - */ -/* - ********************************************************************** +/* ******************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) Eastman Kodak Company, 1997 *** @@ -38,22 +33,24 @@ ********************************************************************** **********************************************************************/ - package java.awt.color; - /** * This exception is thrown if the native CMM returns an error. */ - public class CMMException extends java.lang.RuntimeException { + + /** + * Use serialVersionUID from JDK 1.2 for interoperability. + */ private static final long serialVersionUID = 5775558044142994965L; /** - * Constructs a CMMException with the specified detail message. - * @param s the specified detail message + * Constructs a {@code CMMException} with the specified detail message. + * + * @param s the specified detail message */ - public CMMException (String s) { - super (s); + public CMMException(String s) { + super(s); } } --- old/src/java.desktop/share/classes/java/awt/color/ColorSpace.java 2018-10-24 21:12:06.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/color/ColorSpace.java 2018-10-24 21:12:06.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, 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 *** @@ -38,63 +37,60 @@ import java.lang.annotation.Native; -import sun.java2d.cmm.PCMM; import sun.java2d.cmm.CMSManager; - /** * This abstract class is used to serve as a color space tag to identify the - * specific color space of a Color object or, via a ColorModel object, - * of an Image, a BufferedImage, or a GraphicsDevice. It contains - * methods that transform colors in a specific color space to/from sRGB - * and to/from a well-defined CIEXYZ color space. + * specific color space of a {@code Color} object or, via a {@code ColorModel} + * object, of an {@code Image}, a {@code BufferedImage}, or a + * {@code GraphicsDevice}. It contains methods that transform colors in a + * specific color space to/from sRGB and to/from a well-defined CIEXYZ color + * space. *
- * For purposes of the methods in this class, colors are represented as - * arrays of color components represented as floats in a normalized range - * defined by each ColorSpace. For many ColorSpaces (e.g. sRGB), this - * range is 0.0 to 1.0. However, some ColorSpaces have components whose - * values have a different range. Methods are provided to inquire per - * component minimum and maximum normalized values. + * For purposes of the methods in this class, colors are represented as arrays + * of color components represented as floats in a normalized range defined by + * each {@code ColorSpace}. For many {@code ColorSpaces} (e.g. sRGB), this range + * is 0.0 to 1.0. However, some {@code ColorSpaces} have components whose values + * have a different range. Methods are provided to inquire per component minimum + * and maximum normalized values. *
- * Several variables are defined for purposes of referring to color - * space types (e.g. TYPE_RGB, TYPE_XYZ, etc.) and to refer to specific - * color spaces (e.g. CS_sRGB and CS_CIEXYZ). - * sRGB is a proposed standard RGB color space. For more information, - * see - * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html - * . + * Several variables are defined for purposes of referring to color space types + * (e.g. {@code TYPE_RGB}, {@code TYPE_XYZ}, etc.) and to refer to specific + * color spaces (e.g. {@code CS_sRGB} and {@code CS_CIEXYZ}). sRGB is a proposed + * standard RGB color space. For more information, see + * + * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html. *
- * The purpose of the methods to transform to/from the well-defined - * CIEXYZ color space is to support conversions between any two color - * spaces at a reasonably high degree of accuracy. It is expected that - * particular implementations of subclasses of ColorSpace (e.g. - * ICC_ColorSpace) will support high performance conversion based on - * underlying platform color management systems. + * The purpose of the methods to transform to/from the well-defined CIEXYZ color + * space is to support conversions between any two color spaces at a reasonably + * high degree of accuracy. It is expected that particular implementations of + * subclasses of {@code ColorSpace} (e.g. {@code ICC_ColorSpace}) will support + * high performance conversion based on underlying platform color management + * systems. *
- * The CS_CIEXYZ space used by the toCIEXYZ/fromCIEXYZ methods can be - * described as follows: -
- - CIEXYZ - viewing illuminance: 200 lux - viewing white point: CIE D50 - media white point: "that of a perfectly reflecting diffuser" -- D50 - media black point: 0 lux or 0 Reflectance - flare: 1 percent - surround: 20percent of the media white point - media description: reflection print (i.e., RLAB, Hunt viewing media) - note: For developers creating an ICC profile for this conversion - space, the following is applicable. Use a simple Von Kries - white point adaptation folded into the 3X3 matrix parameters - and fold the flare and surround effects into the three - one-dimensional lookup tables (assuming one uses the minimal - model for monitors). - -+ * The {@code CS_CIEXYZ} space used by the {@code toCIEXYZ/fromCIEXYZ} methods + * can be described as follows: + *
+ * + * CIEXYZ + * viewing illuminance: 200 lux + * viewing white point: CIE D50 + * media white point: "that of a perfectly reflecting diffuser" -- D50 + * media black point: 0 lux or 0 Reflectance + * flare: 1 percent + * surround: 20percent of the media white point + * media description: reflection print (i.e., RLAB, Hunt viewing media) + * note: For developers creating an ICC profile for this conversion + * space, the following is applicable. Use a simple Von Kries + * white point adaptation folded into the 3X3 matrix parameters + * and fold the flare and surround effects into the three + * one-dimensional lookup tables (assuming one uses the minimal + * model for monitors). + * + ** * @see ICC_ColorSpace */ - public abstract class ColorSpace implements java.io.Serializable { static final long serialVersionUID = -409452704308689724L; @@ -237,15 +233,14 @@ /** * The sRGB color space defined at - * - * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html - * . + * + * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html. */ @Native public static final int CS_sRGB = 1000; /** - * A built-in linear RGB color space. This space is based on the - * same RGB primaries as CS_sRGB, but has a linear tone reproduction curve. + * A built-in linear RGB color space. This space is based on the same RGB + * primaries as {@code CS_sRGB}, but has a linear tone reproduction curve. */ @Native public static final int CS_LINEAR_RGB = 1004; @@ -264,25 +259,26 @@ */ @Native public static final int CS_GRAY = 1003; - /** - * Constructs a ColorSpace object given a color space type - * and the number of components. - * @param type one of the {@code ColorSpace} type constants - * @param numcomponents the number of components in the color space + * Constructs a {@code ColorSpace} object given a color space type and the + * number of components. + * + * @param type one of the {@code ColorSpace} type constants + * @param numcomponents the number of components in the color space */ - protected ColorSpace (int type, int numcomponents) { + protected ColorSpace(int type, int numcomponents) { this.type = type; this.numComponents = numcomponents; } - /** - * Returns a ColorSpace representing one of the specific - * predefined color spaces. - * @param colorspace a specific color space identified by one of - * the predefined class constants (e.g. CS_sRGB, CS_LINEAR_RGB, - * CS_CIEXYZ, CS_GRAY, or CS_PYCC) + * Returns a {@code ColorSpace} representing one of the specific predefined + * color spaces. + * + * @param colorspace a specific color space identified by one of the + * predefined class constants (e.g. {@code CS_sRGB}, + * {@code CS_LINEAR_RGB}, {@code CS_CIEXYZ}, {@code CS_GRAY}, or + * {@code CS_PYCC}) * @return the requested {@code ColorSpace} object */ // NOTE: This method may be called by privileged threads. @@ -363,11 +359,11 @@ return theColorSpace; } - /** - * Returns true if the ColorSpace is CS_sRGB. - * @return {@code true} if this is a {@code CS_sRGB} color - * space, {@code false} if it is not + * Returns true if the {@code ColorSpace} is {@code CS_sRGB}. + * + * @return {@code true} if this is a {@code CS_sRGB} color space, + * {@code false} if it is not */ public boolean isCS_sRGB () { /* REMIND - make sure we know sRGBspace exists already */ @@ -375,115 +371,105 @@ } /** - * Transforms a color value assumed to be in this ColorSpace - * into a value in the default CS_sRGB color space. + * Transforms a color value assumed to be in this {@code ColorSpace} into a + * value in the default {@code CS_sRGB} color space. *
- * This method transforms color values using algorithms designed - * to produce the best perceptual match between input and output - * colors. In order to do colorimetric conversion of color values, - * you should use the {@code toCIEXYZ} - * method of this color space to first convert from the input - * color space to the CS_CIEXYZ color space, and then use the - * {@code fromCIEXYZ} method of the CS_sRGB color space to - * convert from CS_CIEXYZ to the output color space. - * See {@link #toCIEXYZ(float[]) toCIEXYZ} and + * This method transforms color values using algorithms designed to produce + * the best perceptual match between input and output colors. In order to do + * colorimetric conversion of color values, you should use the + * {@code toCIEXYZ} method of this color space to first convert from the + * input color space to the CS_CIEXYZ color space, and then use the + * {@code fromCIEXYZ} method of the {@code CS_sRGB} color space to convert + * from {@code CS_CIEXYZ} to the output color space. See + * {@link #toCIEXYZ(float[]) toCIEXYZ} and * {@link #fromCIEXYZ(float[]) fromCIEXYZ} for further information. * - * @param colorvalue a float array with length of at least the number - * of components in this ColorSpace + * @param colorvalue a float array with length of at least the number of + * components in this {@code ColorSpace} * @return a float array of length 3 - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least the number of components in this ColorSpace + * @throws ArrayIndexOutOfBoundsException if array length is not at least + * the number of components in this {@code ColorSpace} */ public abstract float[] toRGB(float[] colorvalue); - /** - * Transforms a color value assumed to be in the default CS_sRGB - * color space into this ColorSpace. + * Transforms a color value assumed to be in the default {@code CS_sRGB} + * color space into this {@code ColorSpace}. *
- * This method transforms color values using algorithms designed - * to produce the best perceptual match between input and output - * colors. In order to do colorimetric conversion of color values, - * you should use the {@code toCIEXYZ} - * method of the CS_sRGB color space to first convert from the input - * color space to the CS_CIEXYZ color space, and then use the - * {@code fromCIEXYZ} method of this color space to - * convert from CS_CIEXYZ to the output color space. - * See {@link #toCIEXYZ(float[]) toCIEXYZ} and + * This method transforms color values using algorithms designed to produce + * the best perceptual match between input and output colors. In order to do + * colorimetric conversion of color values, you should use the + * {@code toCIEXYZ} method of the {@code CS_sRGB} color space to first + * convert from the input color space to the {@code CS_CIEXYZ} color space, + * and then use the {@code fromCIEXYZ} method of this color space to convert + * from {@code CS_CIEXYZ} to the output color space. See + * {@link #toCIEXYZ(float[]) toCIEXYZ} and * {@link #fromCIEXYZ(float[]) fromCIEXYZ} for further information. * - * @param rgbvalue a float array with length of at least 3 - * @return a float array with length equal to the number of - * components in this ColorSpace - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least 3 + * @param rgbvalue a float array with length of at least 3 + * @return a float array with length equal to the number of components in + * this {@code ColorSpace} + * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 */ public abstract float[] fromRGB(float[] rgbvalue); - /** - * Transforms a color value assumed to be in this ColorSpace - * into the CS_CIEXYZ conversion color space. + * Transforms a color value assumed to be in this {@code ColorSpace} into + * the {@code CS_CIEXYZ} conversion color space. *
- * This method transforms color values using relative colorimetry, - * as defined by the International Color Consortium standard. This - * means that the XYZ values returned by this method are represented - * relative to the D50 white point of the CS_CIEXYZ color space. - * This representation is useful in a two-step color conversion - * process in which colors are transformed from an input color - * space to CS_CIEXYZ and then to an output color space. This - * representation is not the same as the XYZ values that would - * be measured from the given color value by a colorimeter. - * A further transformation is necessary to compute the XYZ values - * that would be measured using current CIE recommended practices. - * See the {@link ICC_ColorSpace#toCIEXYZ(float[]) toCIEXYZ} method of + * This method transforms color values using relative colorimetry, as + * defined by the International Color Consortium standard. This means that + * the XYZ values returned by this method are represented relative to the + * D50 white point of the {@code CS_CIEXYZ} color space. This representation + * is useful in a two-step color conversion process in which colors are + * transformed from an input color space to {@code CS_CIEXYZ} and then to an + * output color space. This representation is not the same as the XYZ values + * that would be measured from the given color value by a colorimeter. A + * further transformation is necessary to compute the XYZ values that would + * be measured using current CIE recommended practices. See the + * {@link ICC_ColorSpace#toCIEXYZ(float[]) toCIEXYZ} method of * {@code ICC_ColorSpace} for further information. * - * @param colorvalue a float array with length of at least the number - * of components in this ColorSpace + * @param colorvalue a float array with length of at least the number of + * components in this {@code ColorSpace} * @return a float array of length 3 - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least the number of components in this ColorSpace. + * @throws ArrayIndexOutOfBoundsException if array length is not at least + * the number of components in this {@code ColorSpace}. */ public abstract float[] toCIEXYZ(float[] colorvalue); - /** - * Transforms a color value assumed to be in the CS_CIEXYZ conversion - * color space into this ColorSpace. + * Transforms a color value assumed to be in the {@code CS_CIEXYZ} + * conversion color space into this {@code ColorSpace}. *
- * This method transforms color values using relative colorimetry, - * as defined by the International Color Consortium standard. This - * means that the XYZ argument values taken by this method are represented - * relative to the D50 white point of the CS_CIEXYZ color space. - * This representation is useful in a two-step color conversion - * process in which colors are transformed from an input color - * space to CS_CIEXYZ and then to an output color space. The color - * values returned by this method are not those that would produce - * the XYZ value passed to the method when measured by a colorimeter. - * If you have XYZ values corresponding to measurements made using - * current CIE recommended practices, they must be converted to D50 - * relative values before being passed to this method. - * See the {@link ICC_ColorSpace#fromCIEXYZ(float[]) fromCIEXYZ} method of + * This method transforms color values using relative colorimetry, as + * defined by the International Color Consortium standard. This means that + * the XYZ argument values taken by this method are represented relative to + * the D50 white point of the {@code CS_CIEXYZ} color space. This + * representation is useful in a two-step color conversion process in which + * colors are transformed from an input color space to {@code CS_CIEXYZ} and + * then to an output color space. The color values returned by this method + * are not those that would produce the XYZ value passed to the method when + * measured by a colorimeter. If you have XYZ values corresponding to + * measurements made using current CIE recommended practices, they must be + * converted to D50 relative values before being passed to this method. See + * the {@link ICC_ColorSpace#fromCIEXYZ(float[]) fromCIEXYZ} method of * {@code ICC_ColorSpace} for further information. * - * @param colorvalue a float array with length of at least 3 - * @return a float array with length equal to the number of - * components in this ColorSpace - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least 3 + * @param colorvalue a float array with length of at least 3 + * @return a float array with length equal to the number of components in + * this {@code ColorSpace} + * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 */ public abstract float[] fromCIEXYZ(float[] colorvalue); /** - * Returns the color space type of this ColorSpace (for example - * TYPE_RGB, TYPE_XYZ, ...). The type defines the - * number of components of the color space and the interpretation, - * e.g. TYPE_RGB identifies a color space with three components - red, - * green, and blue. It does not define the particular color - * characteristics of the space, e.g. the chromaticities of the - * primaries. + * Returns the color space type of this {@code ColorSpace} (for example + * {@code TYPE_RGB}, {@code TYPE_XYZ}, ...). The type defines the number of + * components of the color space and the interpretation, e.g. + * {@code TYPE_RGB} identifies a color space with three components - red, + * green, and blue. It does not define the particular color characteristics + * of the space, e.g. the chromaticities of the primaries. * * @return the type constant that represents the type of this * {@code ColorSpace} @@ -494,7 +480,8 @@ /** * Returns the number of components of this ColorSpace. - * @return The number of components in this {@code ColorSpace}. + * + * @return the number of components in this {@code ColorSpace} */ public int getNumComponents() { return numComponents; @@ -503,10 +490,10 @@ /** * Returns the name of the component given the component index. * - * @param idx the component index + * @param idx the component index * @return the name of the component at the specified index - * @throws IllegalArgumentException if {@code idx} is - * less than 0 or greater than numComponents - 1 + * @throws IllegalArgumentException if {@code idx} is less than 0 or greater + * than {@code numComponents - 1} */ public String getName (int idx) { /* REMIND - handle common cases here */ @@ -564,15 +551,14 @@ } /** - * Returns the minimum normalized color component value for the - * specified component. The default implementation in this abstract - * class returns 0.0 for all components. Subclasses should override - * this method if necessary. + * Returns the minimum normalized color component value for the specified + * component. The default implementation in this abstract class returns 0.0 + * for all components. Subclasses should override this method if necessary. * - * @param component the component index + * @param component the component index * @return the minimum normalized component value - * @throws IllegalArgumentException if component is less than 0 or - * greater than numComponents - 1 + * @throws IllegalArgumentException if component is less than 0 or greater + * than {@code numComponents - 1} * @since 1.4 */ public float getMinValue(int component) { @@ -584,15 +570,14 @@ } /** - * Returns the maximum normalized color component value for the - * specified component. The default implementation in this abstract - * class returns 1.0 for all components. Subclasses should override - * this method if necessary. + * Returns the maximum normalized color component value for the specified + * component. The default implementation in this abstract class returns 1.0 + * for all components. Subclasses should override this method if necessary. * - * @param component the component index + * @param component the component index * @return the maximum normalized component value - * @throws IllegalArgumentException if component is less than 0 or - * greater than numComponents - 1 + * @throws IllegalArgumentException if component is less than 0 or greater + * than {@code numComponents - 1} * @since 1.4 */ public float getMaxValue(int component) { @@ -603,7 +588,8 @@ return 1.0f; } - /* Returns true if cspace is the XYZspace. + /* + * Returns {@code true} if {@code cspace} is the XYZspace. */ static boolean isCS_CIEXYZ(ColorSpace cspace) { return (cspace == XYZspace); --- old/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java 2018-10-24 21:12:10.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/color/ICC_ColorSpace.java 2018-10-24 21:12:10.000000000 -0700 @@ -23,8 +23,7 @@ * questions. */ -/* - ********************************************************************** +/* ******************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) Eastman Kodak Company, 1997 *** @@ -36,54 +35,46 @@ package java.awt.color; -import sun.java2d.cmm.ColorTransform; import sun.java2d.cmm.CMSManager; +import sun.java2d.cmm.ColorTransform; import sun.java2d.cmm.PCMM; - /** - * - * The ICC_ColorSpace class is an implementation of the abstract - * ColorSpace class. This representation of - * device independent and device dependent color spaces is based on the - * International Color Consortium Specification ICC.1:2001-12, File Format for - * Color Profiles (see http://www.color.org). + * The {@code ICC_ColorSpace} class is an implementation of the abstract + * {@code ColorSpace} class. This representation of device independent and + * device dependent color spaces is based on the International Color Consortium + * Specification ICC.1:2001-12, File Format for Color Profiles (see + * http://www.color.org). *
- * Typically, a Color or ColorModel would be associated with an ICC - * Profile which is either an input, display, or output profile (see - * the ICC specification). There are other types of ICC Profiles, e.g. - * abstract profiles, device link profiles, and named color profiles, - * which do not contain information appropriate for representing the color - * space of a color, image, or device (see ICC_Profile). - * Attempting to create an ICC_ColorSpace object from an inappropriate ICC - * Profile is an error. + * Typically, a {@code Color} or {@code ColorModel} would be associated with an + * ICC Profile which is either an input, display, or output profile (see the ICC + * specification). There are other types of ICC Profiles, e.g. abstract + * profiles, device link profiles, and named color profiles, which do not + * contain information appropriate for representing the color space of a color, + * image, or device (see {@code ICC_Profile}). Attempting to create an + * {@code ICC_ColorSpace} object from an inappropriate ICC Profile is an error. *
- * ICC Profiles represent transformations from the color space of - * the profile (e.g. a monitor) to a Profile Connection Space (PCS). - * Profiles of interest for tagging images or colors have a - * PCS which is one of the device independent - * spaces (one CIEXYZ space and two CIELab spaces) defined in the - * ICC Profile Format Specification. Most profiles of interest - * either have invertible transformations or explicitly specify - * transformations going both directions. Should an ICC_ColorSpace - * object be used in a way requiring a conversion from PCS to - * the profile's native space and there is inadequate data to - * correctly perform the conversion, the ICC_ColorSpace object will - * produce output in the specified type of color space (e.g. TYPE_RGB, - * TYPE_CMYK, etc.), but the specific color values of the output data - * will be undefined. + * ICC Profiles represent transformations from the color space of the profile + * (e.g. a monitor) to a Profile Connection Space (PCS). Profiles of interest + * for tagging images or colors have a PCS which is one of the device + * independent spaces (one CIEXYZ space and two CIELab spaces) defined in the + * ICC Profile Format Specification. Most profiles of interest either have + * invertible transformations or explicitly specify transformations going both + * directions. Should an {@code ICC_ColorSpace} object be used in a way + * requiring a conversion from PCS to the profile's native space and there is + * inadequate data to correctly perform the conversion, the + * {@code ICC_ColorSpace} object will produce output in the specified type of + * color space (e.g. {@code TYPE_RGB}, {@code TYPE_CMYK}, etc.), but the + * specific color values of the output data will be undefined. *
- * The details of this class are not important for simple applets, - * which draw in a default color space or manipulate and display - * imported images with a known color space. At most, such applets - * would need to get one of the default color spaces via - * ColorSpace.getInstance(). + * The details of this class are not important for simple applets, which draw in + * a default color space or manipulate and display imported images with a known + * color space. At most, such applets would need to get one of the default color + * spaces via {@link ColorSpace#getInstance}. + * * @see ColorSpace * @see ICC_Profile */ - - - public class ICC_ColorSpace extends ColorSpace { static final long serialVersionUID = 3455889114070431483L; @@ -101,13 +92,14 @@ private transient ColorTransform this2xyz; private transient ColorTransform xyz2this; - /** - * Constructs a new ICC_ColorSpace from an ICC_Profile object. - * @param profile the specified ICC_Profile object - * @exception IllegalArgumentException if profile is inappropriate for - * representing a ColorSpace. - */ + * Constructs a new {@code ICC_ColorSpace} from an {@code ICC_Profile} + * object. + * + * @param profile the specified {@code ICC_Profile} object + * @throws IllegalArgumentException if profile is inappropriate for + * representing a {@code ColorSpace} + */ public ICC_ColorSpace (ICC_Profile profile) { super (profile.getColorSpaceType(), profile.getNumComponents()); @@ -140,33 +132,33 @@ } /** - * Returns the ICC_Profile for this ICC_ColorSpace. - * @return the ICC_Profile for this ICC_ColorSpace. - */ + * Returns the {@code ICC_Profile} for this {@code ICC_ColorSpace}. + * + * @return the {@code ICC_Profile} for this {@code ICC_ColorSpace} + */ public ICC_Profile getProfile() { return thisProfile; } /** - * Transforms a color value assumed to be in this ColorSpace - * into a value in the default CS_sRGB color space. + * Transforms a color value assumed to be in this {@code ColorSpace} into a + * value in the default {@code CS_sRGB} color space. *
- * This method transforms color values using algorithms designed - * to produce the best perceptual match between input and output - * colors. In order to do colorimetric conversion of color values, - * you should use the {@code toCIEXYZ} - * method of this color space to first convert from the input - * color space to the CS_CIEXYZ color space, and then use the - * {@code fromCIEXYZ} method of the CS_sRGB color space to - * convert from CS_CIEXYZ to the output color space. - * See {@link #toCIEXYZ(float[]) toCIEXYZ} and + * This method transforms color values using algorithms designed to produce + * the best perceptual match between input and output colors. In order to do + * colorimetric conversion of color values, you should use the + * {@code toCIEXYZ} method of this color space to first convert from the + * input color space to the {@code CS_CIEXYZ} color space, and then use the + * {@code fromCIEXYZ} method of the {@code CS_sRGB} color space to convert + * from {@code CS_CIEXYZ} to the output color space. See + * {@link #toCIEXYZ(float[]) toCIEXYZ} and * {@link #fromCIEXYZ(float[]) fromCIEXYZ} for further information. * - * @param colorvalue a float array with length of at least the number - * of components in this ColorSpace. - * @return a float array of length 3. - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least the number of components in this ColorSpace. + * @param colorvalue a float array with length of at least the number of + * components in this {@code ColorSpace} + * @return a float array of length 3 + * @throws ArrayIndexOutOfBoundsException if array length is not at least + * the number of components in this {@code ColorSpace} */ public float[] toRGB (float[] colorvalue) { @@ -200,25 +192,23 @@ } /** - * Transforms a color value assumed to be in the default CS_sRGB - * color space into this ColorSpace. + * Transforms a color value assumed to be in the default {@code CS_sRGB} + * color space into this {@code ColorSpace}. *
- * This method transforms color values using algorithms designed - * to produce the best perceptual match between input and output - * colors. In order to do colorimetric conversion of color values, - * you should use the {@code toCIEXYZ} - * method of the CS_sRGB color space to first convert from the input - * color space to the CS_CIEXYZ color space, and then use the - * {@code fromCIEXYZ} method of this color space to - * convert from CS_CIEXYZ to the output color space. - * See {@link #toCIEXYZ(float[]) toCIEXYZ} and + * This method transforms color values using algorithms designed to produce + * the best perceptual match between input and output colors. In order to do + * colorimetric conversion of color values, you should use the + * {@code toCIEXYZ} method of the {@code CS_sRGB} color space to first + * convert from the input color space to the {@code CS_CIEXYZ} color space, + * and then use the {@code fromCIEXYZ} method of this color space to convert + * from {@code CS_CIEXYZ} to the output color space. See + * {@link #toCIEXYZ(float[]) toCIEXYZ} and * {@link #fromCIEXYZ(float[]) fromCIEXYZ} for further information. * - * @param rgbvalue a float array with length of at least 3. - * @return a float array with length equal to the number of - * components in this ColorSpace. - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least 3. + * @param rgbvalue a float array with length of at least 3 + * @return a float array with length equal to the number of components in + * this {@code ColorSpace} + * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 */ public float[] fromRGB(float[] rgbvalue) { @@ -251,70 +241,66 @@ return result; } - /** - * Transforms a color value assumed to be in this ColorSpace - * into the CS_CIEXYZ conversion color space. + * Transforms a color value assumed to be in this {@code ColorSpace} into + * the {@code CS_CIEXYZ} conversion color space. *
- * This method transforms color values using relative colorimetry, - * as defined by the ICC Specification. This - * means that the XYZ values returned by this method are represented - * relative to the D50 white point of the CS_CIEXYZ color space. - * This representation is useful in a two-step color conversion - * process in which colors are transformed from an input color - * space to CS_CIEXYZ and then to an output color space. This - * representation is not the same as the XYZ values that would - * be measured from the given color value by a colorimeter. - * A further transformation is necessary to compute the XYZ values - * that would be measured using current CIE recommended practices. - * The paragraphs below explain this in more detail. + * This method transforms color values using relative colorimetry, as + * defined by the ICC Specification. This means that the XYZ values returned + * by this method are represented relative to the D50 white point of the + * {@code CS_CIEXYZ} color space. This representation is useful in a + * two-step color conversion process in which colors are transformed from an + * input color space to {@code CS_CIEXYZ} and then to an output color space. + * This representation is not the same as the XYZ values that would be + * measured from the given color value by a colorimeter. A further + * transformation is necessary to compute the XYZ values that would be + * measured using current CIE recommended practices. The paragraphs below + * explain this in more detail. *
* The ICC standard uses a device independent color space (DICS) as the - * mechanism for converting color from one device to another device. In - * this architecture, colors are converted from the source device's color - * space to the ICC DICS and then from the ICC DICS to the destination - * device's color space. The ICC standard defines device profiles which - * contain transforms which will convert between a device's color space - * and the ICC DICS. The overall conversion of colors from a source - * device to colors of a destination device is done by connecting the - * device-to-DICS transform of the profile for the source device to the - * DICS-to-device transform of the profile for the destination device. - * For this reason, the ICC DICS is commonly referred to as the profile - * connection space (PCS). The color space used in the methods - * toCIEXYZ and fromCIEXYZ is the CIEXYZ PCS defined by the ICC - * Specification. This is also the color space represented by - * ColorSpace.CS_CIEXYZ. - *
- * The XYZ values of a color are often represented as relative to some - * white point, so the actual meaning of the XYZ values cannot be known - * without knowing the white point of those values. This is known as - * relative colorimetry. The PCS uses a white point of D50, so the XYZ - * values of the PCS are relative to D50. For example, white in the PCS - * will have the XYZ values of D50, which is defined to be X=.9642, - * Y=1.000, and Z=0.8249. This white point is commonly used for graphic - * arts applications, but others are often used in other applications. - *
- * To quantify the color characteristics of a device such as a printer - * or monitor, measurements of XYZ values for particular device colors - * are typically made. For purposes of this discussion, the term - * device XYZ values is used to mean the XYZ values that would be - * measured from device colors using current CIE recommended practices. - *
- * Converting between device XYZ values and the PCS XYZ values returned - * by this method corresponds to converting between the device's color - * space, as represented by CIE colorimetric values, and the PCS. There - * are many factors involved in this process, some of which are quite - * subtle. The most important, however, is the adjustment made to account - * for differences between the device's white point and the white point of - * the PCS. There are many techniques for doing this and it is the - * subject of much current research and controversy. Some commonly used - * methods are XYZ scaling, the von Kries transform, and the Bradford - * transform. The proper method to use depends upon each particular - * application. - *
- * The simplest method is XYZ scaling. In this method each device XYZ - * value is converted to a PCS XYZ value by multiplying it by the ratio - * of the PCS white point (D50) to the device white point. + * mechanism for converting color from one device to another device. In this + * architecture, colors are converted from the source device's color space + * to the ICC DICS and then from the ICC DICS to the destination device's + * color space. The ICC standard defines device profiles which contain + * transforms which will convert between a device's color space and the ICC + * DICS. The overall conversion of colors from a source device to colors of + * a destination device is done by connecting the device-to-DICS transform + * of the profile for the source device to the DICS-to-device transform of + * the profile for the destination device. For this reason, the ICC DICS is + * commonly referred to as the profile connection space (PCS). The color + * space used in the methods {@code toCIEXYZ} and {@code fromCIEXYZ} is the + * CIEXYZ PCS defined by the ICC Specification. This is also the color space + * represented by {@code ColorSpace.CS_CIEXYZ}. + *
+ * The XYZ values of a color are often represented as relative to some white + * point, so the actual meaning of the XYZ values cannot be known without + * knowing the white point of those values. This is known as relative + * colorimetry. The PCS uses a white point of D50, so the XYZ values of the + * PCS are relative to D50. For example, white in the PCS will have the XYZ + * values of D50, which is defined to be X=.9642, Y=1.000, and Z=0.8249. + * This white point is commonly used for graphic arts applications, but + * others are often used in other applications. + *
+ * To quantify the color characteristics of a device such as a printer or + * monitor, measurements of XYZ values for particular device colors are + * typically made. For purposes of this discussion, the term device XYZ + * values is used to mean the XYZ values that would be measured from device + * colors using current CIE recommended practices. + *
+ * Converting between device XYZ values and the PCS XYZ values returned by + * this method corresponds to converting between the device's color space, + * as represented by CIE colorimetric values, and the PCS. There are many + * factors involved in this process, some of which are quite subtle. The + * most important, however, is the adjustment made to account for + * differences between the device's white point and the white point of the + * PCS. There are many techniques for doing this and it is the subject of + * much current research and controversy. Some commonly used methods are XYZ + * scaling, the von Kries transform, and the Bradford transform. The proper + * method to use depends upon each particular application. + *
+ * The simplest method is XYZ scaling. In this method each device XYZ value + * is converted to a PCS XYZ value by multiplying it by the ratio of the PCS + * white point (D50) to the device white point. *
* * Xd, Yd, Zd are the device XYZ values @@ -338,22 +324,21 @@ * **
- * Note that the media white point tag in an ICC profile is not the same - * as the device white point. The media white point tag is expressed in - * PCS values and is used to represent the difference between the XYZ of - * device illuminant and the XYZ of the device media when measured under - * that illuminant. The device white point is expressed as the device - * XYZ values corresponding to white displayed on the device. For - * example, displaying the RGB color (1.0, 1.0, 1.0) on an sRGB device - * will result in a measured device XYZ value of D65. This will not - * be the same as the media white point tag XYZ value in the ICC - * profile for an sRGB device. - * - * @param colorvalue a float array with length of at least the number - * of components in this ColorSpace. - * @return a float array of length 3. - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least the number of components in this ColorSpace. + * Note that the media white point tag in an ICC profile is not the same as + * the device white point. The media white point tag is expressed in PCS + * values and is used to represent the difference between the XYZ of device + * illuminant and the XYZ of the device media when measured under that + * illuminant. The device white point is expressed as the device XYZ values + * corresponding to white displayed on the device. For example, displaying + * the RGB color (1.0, 1.0, 1.0) on an sRGB device will result in a measured + * device XYZ value of D65. This will not be the same as the media white + * point tag XYZ value in the ICC profile for an sRGB device. + * + * @param colorvalue a float array with length of at least the number of + * components in this {@code ColorSpace} + * @return a float array of length 3 + * @throws ArrayIndexOutOfBoundsException if array length is not at least + * the number of components in this {@code ColorSpace} */ public float[] toCIEXYZ(float[] colorvalue) { @@ -394,71 +379,67 @@ return result; } - /** - * Transforms a color value assumed to be in the CS_CIEXYZ conversion - * color space into this ColorSpace. + * Transforms a color value assumed to be in the {@code CS_CIEXYZ} + * conversion color space into this ColorSpace. *
- * This method transforms color values using relative colorimetry, - * as defined by the ICC Specification. This - * means that the XYZ argument values taken by this method are represented - * relative to the D50 white point of the CS_CIEXYZ color space. - * This representation is useful in a two-step color conversion - * process in which colors are transformed from an input color - * space to CS_CIEXYZ and then to an output color space. The color - * values returned by this method are not those that would produce - * the XYZ value passed to the method when measured by a colorimeter. - * If you have XYZ values corresponding to measurements made using - * current CIE recommended practices, they must be converted to D50 - * relative values before being passed to this method. - * The paragraphs below explain this in more detail. + * This method transforms color values using relative colorimetry, as + * defined by the ICC Specification. This means that the XYZ argument values + * taken by this method are represented relative to the D50 white point of + * the {@code CS_CIEXYZ} color space. This representation is useful in a + * two-step color conversion process in which colors are transformed from an + * input color space to {@code CS_CIEXYZ} and then to an output color space. + * The color values returned by this method are not those that would produce + * the XYZ value passed to the method when measured by a colorimeter. If you + * have XYZ values corresponding to measurements made using current CIE + * recommended practices, they must be converted to D50 relative values + * before being passed to this method. The paragraphs below explain this in + * more detail. *
* The ICC standard uses a device independent color space (DICS) as the - * mechanism for converting color from one device to another device. In - * this architecture, colors are converted from the source device's color - * space to the ICC DICS and then from the ICC DICS to the destination - * device's color space. The ICC standard defines device profiles which - * contain transforms which will convert between a device's color space - * and the ICC DICS. The overall conversion of colors from a source - * device to colors of a destination device is done by connecting the - * device-to-DICS transform of the profile for the source device to the - * DICS-to-device transform of the profile for the destination device. - * For this reason, the ICC DICS is commonly referred to as the profile - * connection space (PCS). The color space used in the methods - * toCIEXYZ and fromCIEXYZ is the CIEXYZ PCS defined by the ICC - * Specification. This is also the color space represented by - * ColorSpace.CS_CIEXYZ. - *
- * The XYZ values of a color are often represented as relative to some - * white point, so the actual meaning of the XYZ values cannot be known - * without knowing the white point of those values. This is known as - * relative colorimetry. The PCS uses a white point of D50, so the XYZ - * values of the PCS are relative to D50. For example, white in the PCS - * will have the XYZ values of D50, which is defined to be X=.9642, - * Y=1.000, and Z=0.8249. This white point is commonly used for graphic - * arts applications, but others are often used in other applications. - *
- * To quantify the color characteristics of a device such as a printer - * or monitor, measurements of XYZ values for particular device colors - * are typically made. For purposes of this discussion, the term - * device XYZ values is used to mean the XYZ values that would be - * measured from device colors using current CIE recommended practices. + * mechanism for converting color from one device to another device. In this + * architecture, colors are converted from the source device's color space + * to the ICC DICS and then from the ICC DICS to the destination device's + * color space. The ICC standard defines device profiles which contain + * transforms which will convert between a device's color space and the ICC + * DICS. The overall conversion of colors from a source device to colors of + * a destination device is done by connecting the device-to-DICS transform + * of the profile for the source device to the DICS-to-device transform of + * the profile for the destination device. For this reason, the ICC DICS is + * commonly referred to as the profile connection space (PCS). The color + * space used in the methods {@code toCIEXYZ} and {@code fromCIEXYZ} is the + * CIEXYZ PCS defined by the ICC Specification. This is also the color space + * represented by {@code ColorSpace.CS_CIEXYZ}. + *
+ * The XYZ values of a color are often represented as relative to some white + * point, so the actual meaning of the XYZ values cannot be known without + * knowing the white point of those values. This is known as relative + * colorimetry. The PCS uses a white point of D50, so the XYZ values of the + * PCS are relative to D50. For example, white in the PCS will have the XYZ + * values of D50, which is defined to be X=.9642, Y=1.000, and Z=0.8249. + * This white point is commonly used for graphic arts applications, but + * others are often used in other applications. + *
+ * To quantify the color characteristics of a device such as a printer or + * monitor, measurements of XYZ values for particular device colors are + * typically made. For purposes of this discussion, the term device XYZ + * values is used to mean the XYZ values that would be measured from device + * colors using current CIE recommended practices. *
* Converting between device XYZ values and the PCS XYZ values taken as * arguments by this method corresponds to converting between the device's * color space, as represented by CIE colorimetric values, and the PCS. * There are many factors involved in this process, some of which are quite - * subtle. The most important, however, is the adjustment made to account + * subtle. The most important, however, is the adjustment made to account * for differences between the device's white point and the white point of - * the PCS. There are many techniques for doing this and it is the - * subject of much current research and controversy. Some commonly used - * methods are XYZ scaling, the von Kries transform, and the Bradford - * transform. The proper method to use depends upon each particular - * application. - *
- * The simplest method is XYZ scaling. In this method each device XYZ - * value is converted to a PCS XYZ value by multiplying it by the ratio - * of the PCS white point (D50) to the device white point. + * the PCS. There are many techniques for doing this and it is the subject + * of much current research and controversy. Some commonly used methods are + * XYZ scaling, the von Kries transform, and the Bradford transform. The + * proper method to use depends upon each particular application. + *
+ * The simplest method is XYZ scaling. In this method each device XYZ value + * is converted to a PCS XYZ value by multiplying it by the ratio of the PCS + * white point (D50) to the device white point. *
* * Xd, Yd, Zd are the device XYZ values @@ -482,22 +463,20 @@ * **
- * Note that the media white point tag in an ICC profile is not the same - * as the device white point. The media white point tag is expressed in - * PCS values and is used to represent the difference between the XYZ of - * device illuminant and the XYZ of the device media when measured under - * that illuminant. The device white point is expressed as the device - * XYZ values corresponding to white displayed on the device. For - * example, displaying the RGB color (1.0, 1.0, 1.0) on an sRGB device - * will result in a measured device XYZ value of D65. This will not - * be the same as the media white point tag XYZ value in the ICC - * profile for an sRGB device. - * - * @param colorvalue a float array with length of at least 3. - * @return a float array with length equal to the number of - * components in this ColorSpace. - * @throws ArrayIndexOutOfBoundsException if array length is not - * at least 3. + * Note that the media white point tag in an ICC profile is not the same as + * the device white point. The media white point tag is expressed in PCS + * values and is used to represent the difference between the XYZ of device + * illuminant and the XYZ of the device media when measured under that + * illuminant. The device white point is expressed as the device XYZ values + * corresponding to white displayed on the device. For example, displaying + * the RGB color (1.0, 1.0, 1.0) on an sRGB device will result in a measured + * device XYZ value of D65. This will not be the same as the media white + * point tag XYZ value in the ICC profile for an sRGB device. + * + * @param colorvalue a float array with length of at least 3 + * @return a float array with length equal to the number of components in + * this {@code ColorSpace} + * @throws ArrayIndexOutOfBoundsException if array length is not at least 3 */ public float[] fromCIEXYZ(float[] colorvalue) { @@ -540,19 +519,20 @@ } /** - * Returns the minimum normalized color component value for the - * specified component. For TYPE_XYZ spaces, this method returns - * minimum values of 0.0 for all components. For TYPE_Lab spaces, - * this method returns 0.0 for L and -128.0 for a and b components. - * This is consistent with the encoding of the XYZ and Lab Profile - * Connection Spaces in the ICC specification. For all other types, this - * method returns 0.0 for all components. When using an ICC_ColorSpace - * with a profile that requires different minimum component values, - * it is necessary to subclass this class and override this method. - * @param component The component index. - * @return The minimum normalized component value. - * @throws IllegalArgumentException if component is less than 0 or - * greater than numComponents - 1. + * Returns the minimum normalized color component value for the specified + * component. For {@code TYPE_XYZ} spaces, this method returns minimum + * values of 0.0 for all components. For {@code TYPE_Lab} spaces, this + * method returns 0.0 for L and -128.0 for a and b components. This is + * consistent with the encoding of the XYZ and Lab Profile Connection Spaces + * in the ICC specification. For all other types, this method returns 0.0 + * for all components. When using an {@code ICC_ColorSpace} with a profile + * that requires different minimum component values, it is necessary to + * subclass this class and override this method. + * + * @param component the component index + * @return the minimum normalized component value + * @throws IllegalArgumentException if component is less than 0 or greater + * than {@code numComponents - 1} * @since 1.4 */ public float getMinValue(int component) { @@ -564,20 +544,21 @@ } /** - * Returns the maximum normalized color component value for the - * specified component. For TYPE_XYZ spaces, this method returns - * maximum values of 1.0 + (32767.0 / 32768.0) for all components. - * For TYPE_Lab spaces, - * this method returns 100.0 for L and 127.0 for a and b components. - * This is consistent with the encoding of the XYZ and Lab Profile - * Connection Spaces in the ICC specification. For all other types, this - * method returns 1.0 for all components. When using an ICC_ColorSpace - * with a profile that requires different maximum component values, - * it is necessary to subclass this class and override this method. - * @param component The component index. - * @return The maximum normalized component value. - * @throws IllegalArgumentException if component is less than 0 or - * greater than numComponents - 1. + * Returns the maximum normalized color component value for the specified + * component. For {@code TYPE_XYZ} spaces, this method returns maximum + * values of 1.0 + (32767.0 / 32768.0) for all components. For + * {@code TYPE_Lab} spaces, this method returns 100.0 for L and 127.0 for a + * and b components. This is consistent with the encoding of the XYZ and Lab + * Profile Connection Spaces in the ICC specification. For all other types, + * this method returns 1.0 for all components. When using an + * {@code ICC_ColorSpace} with a profile that requires different maximum + * component values, it is necessary to subclass this class and override + * this method. + * + * @param component the component index + * @return the maximum normalized component value + * @throws IllegalArgumentException if component is less than 0 or greater + * than {@code numComponents - 1} * @since 1.4 */ public float getMaxValue(int component) { --- old/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java 2018-10-24 21:12:14.000000000 -0700 +++ new/src/java.desktop/share/classes/java/awt/color/ICC_Profile.java 2018-10-24 21:12:13.000000000 -0700 @@ -23,8 +23,7 @@ * questions. */ -/* - ********************************************************************** +/* ******************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) Eastman Kodak Company, 1997 *** @@ -36,17 +35,8 @@ package java.awt.color; -import sun.java2d.cmm.PCMM; -import sun.java2d.cmm.CMSManager; -import sun.java2d.cmm.Profile; -import sun.java2d.cmm.ProfileDataVerifier; -import sun.java2d.cmm.ProfileDeferralMgr; -import sun.java2d.cmm.ProfileDeferralInfo; -import sun.java2d.cmm.ProfileActivator; - import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FilePermission; import java.io.IOException; @@ -56,42 +46,43 @@ import java.io.ObjectStreamException; import java.io.OutputStream; import java.io.Serializable; - -import java.util.StringTokenizer; - import java.security.AccessController; import java.security.PrivilegedAction; +import java.util.StringTokenizer; +import sun.java2d.cmm.CMSManager; +import sun.java2d.cmm.PCMM; +import sun.java2d.cmm.Profile; +import sun.java2d.cmm.ProfileActivator; +import sun.java2d.cmm.ProfileDataVerifier; +import sun.java2d.cmm.ProfileDeferralInfo; +import sun.java2d.cmm.ProfileDeferralMgr; /** - * A representation of color profile data for device independent and - * device dependent color spaces based on the International Color - * Consortium Specification ICC.1:2001-12, File Format for Color Profiles, - * (see http://www.color.org). + * A representation of color profile data for device independent and device + * dependent color spaces based on the International Color Consortium + * Specification ICC.1:2001-12, File Format for Color Profiles, (see + * http://www.color.org). *
- * An ICC_ColorSpace object can be constructed from an appropriate - * ICC_Profile. - * Typically, an ICC_ColorSpace would be associated with an ICC - * Profile which is either an input, display, or output profile (see - * the ICC specification). There are also device link, abstract, - * color space conversion, and named color profiles. These are less - * useful for tagging a color or image, but are useful for other - * purposes (in particular device link profiles can provide improved - * performance for converting from one device's color space to - * another's). + * An {@code ICC_ColorSpace} object can be constructed from an appropriate + * {@code ICC_Profile}. Typically, an {@code ICC_ColorSpace} would be associated + * with an ICC Profile which is either an input, display, or output profile (see + * the ICC specification). There are also device link, abstract, color space + * conversion, and named color profiles. These are less useful for tagging a + * color or image, but are useful for other purposes (in particular device link + * profiles can provide improved performance for converting from one device's + * color space to another's). *
- * ICC Profiles represent transformations from the color space of
- * the profile (e.g. a monitor) to a Profile Connection Space (PCS).
- * Profiles of interest for tagging images or colors have a PCS
- * which is one of the two specific device independent
- * spaces (one CIEXYZ space and one CIELab space) defined in the
- * ICC Profile Format Specification. Most profiles of interest
- * either have invertible transformations or explicitly specify
- * transformations going both directions.
+ * ICC Profiles represent transformations from the color space of the profile
+ * (e.g. a monitor) to a Profile Connection Space (PCS). Profiles of interest
+ * for tagging images or colors have a PCS which is one of the two specific
+ * device independent spaces (one CIEXYZ space and one CIELab space) defined in
+ * the ICC Profile Format Specification. Most profiles of interest either have
+ * invertible transformations or explicitly specify transformations going both
+ * directions.
+ *
* @see ICC_ColorSpace
*/
-
-
public class ICC_Profile implements Serializable {
private static final long serialVersionUID = -3938515861990936766L;
@@ -110,7 +101,6 @@
private static ICC_Profile GRAYprofile;
private static ICC_Profile LINEAR_RGBprofile;
-
/**
* Profile class is input.
*/
@@ -146,7 +136,6 @@
*/
public static final int CLASS_NAMEDCOLOR = 6;
-
/**
* ICC Profile Color Space Type Signature: 'XYZ '.
*/
@@ -321,6 +310,7 @@
/**
* ICC Profile Rendering Intent: Media-RelativeColorimetric.
+ *
* @since 1.5
*/
public static final int icMediaRelativeColorimetric = 1;
@@ -337,6 +327,7 @@
/**
* ICC Profile Rendering Intent: ICC-AbsoluteColorimetric.
+ *
* @since 1.5
*/
public static final int icICCAbsoluteColorimetric = 3;
@@ -369,6 +360,7 @@
/**
* ICC Profile Tag Signature: 'bXYZ'.
+ *
* @since 1.5
*/
public static final int icSigBlueMatrixColumnTag = 0x6258595A; /* 'bXYZ' */
@@ -446,6 +438,7 @@
/**
* ICC Profile Tag Signature: 'gXYZ'.
+ *
* @since 1.5
*/
public static final int icSigGreenMatrixColumnTag = 0x6758595A;/* 'gXYZ' */
@@ -550,6 +543,7 @@
/**
* ICC Profile Tag Signature: 'rXYZ'.
+ *
* @since 1.5
*/
public static final int icSigRedMatrixColumnTag = 0x7258595A; /* 'rXYZ' */
@@ -596,18 +590,21 @@
/**
* ICC Profile Tag Signature: 'chad'.
+ *
* @since 1.5
*/
public static final int icSigChromaticAdaptationTag = 0x63686164;/* 'chad' */
/**
* ICC Profile Tag Signature: 'clro'.
+ *
* @since 1.5
*/
public static final int icSigColorantOrderTag = 0x636C726F; /* 'clro' */
/**
* ICC Profile Tag Signature: 'clrt'.
+ *
* @since 1.5
*/
public static final int icSigColorantTableTag = 0x636C7274; /* 'clrt' */
@@ -695,6 +692,7 @@
/**
* ICC Profile Header Location: profile's ID.
+ *
* @since 1.5
*/
public static final int icHdrProfileID = 84; /* Profile's ID */
@@ -727,15 +725,14 @@
/**
- * Constructs an ICC_Profile object with a given ID.
+ * Constructs an {@code ICC_Profile} object with a given ID.
*/
ICC_Profile(Profile p) {
this.cmmProfile = p;
}
-
/**
- * Constructs an ICC_Profile object whose loading will be deferred.
+ * Constructs an {@code ICC_Profile} object whose loading will be deferred.
* The ID will be 0 until the profile is loaded.
*/
ICC_Profile(ProfileDeferralInfo pdi) {
@@ -748,18 +745,18 @@
ProfileDeferralMgr.registerDeferral(this.profileActivator);
}
-
/**
- * Frees the resources associated with an ICC_Profile object.
+ * Frees the resources associated with an {@code ICC_Profile} object.
*
- * @deprecated The {@code finalize} method has been deprecated.
- * Subclasses that override {@code finalize} in order to perform cleanup
- * should be modified to use alternative cleanup mechanisms and
- * to remove the overriding {@code finalize} method.
- * When overriding the {@code finalize} method, its implementation must explicitly
- * ensure that {@code super.finalize()} is invoked as described in {@link Object#finalize}.
- * See the specification for {@link Object#finalize()} for further
- * information about migration options.
+ * @deprecated The {@code finalize} method has been deprecated. Subclasses
+ * that override {@code finalize} in order to perform cleanup should
+ * be modified to use alternative cleanup mechanisms and to remove
+ * the overriding {@code finalize} method. When overriding the
+ * {@code finalize} method, its implementation must explicitly
+ * ensure that {@code super.finalize()} is invoked as described in
+ * {@link Object#finalize}. See the specification for {@link
+ * Object#finalize()} for further information about migration
+ * options.
*/
@Deprecated(since="9")
protected void finalize () {
@@ -770,14 +767,14 @@
}
}
-
/**
- * Constructs an ICC_Profile object corresponding to the data in
- * a byte array. Throws an IllegalArgumentException if the data
- * does not correspond to a valid ICC Profile.
- * @param data the specified ICC Profile data
- * @return an {@code ICC_Profile} object corresponding to
- * the data in the specified {@code data} array.
+ * Constructs an {@code ICC_Profile} object corresponding to the data in a
+ * byte array. Throws an {@code IllegalArgumentException} if the data does
+ * not correspond to a valid ICC Profile.
+ *
+ * @param data the specified ICC Profile data
+ * @return an {@code ICC_Profile} object corresponding to the data in the
+ * specified {@code data} array
*/
public static ICC_Profile getInstance(byte[] data) {
ICC_Profile thisProfile;
@@ -821,22 +818,19 @@
return thisProfile;
}
-
-
/**
- * Constructs an ICC_Profile corresponding to one of the specific color
- * spaces defined by the ColorSpace class (for example CS_sRGB).
- * Throws an IllegalArgumentException if cspace is not one of the
- * defined color spaces.
- *
- * @param cspace the type of color space to create a profile for.
- * The specified type is one of the color
- * space constants defined in the {@code ColorSpace} class.
- *
- * @return an {@code ICC_Profile} object corresponding to
- * the specified {@code ColorSpace} type.
- * @exception IllegalArgumentException If {@code cspace} is not
- * one of the predefined color space types.
+ * Constructs an {@code ICC_Profile} corresponding to one of the specific
+ * color spaces defined by the {@code ColorSpace} class (for example
+ * {@code CS_sRGB}). Throws an {@code IllegalArgumentException} if cspace is
+ * not one of the defined color spaces.
+ *
+ * @param cspace the type of color space to create a profile for. The
+ * specified type is one of the color space constants defined in the
+ * {@code ColorSpace} class.
+ * @return an {@code ICC_Profile} object corresponding to the specified
+ * {@code ColorSpace} type
+ * @throws IllegalArgumentException If {@code cspace} is not one of the
+ * predefined color space types
*/
public static ICC_Profile getInstance (int cspace) {
ICC_Profile thisProfile = null;
@@ -931,51 +925,49 @@
return thisProfile;
}
- /* This asserts system privileges, so is used only for the
- * standard profiles.
+ /**
+ * This method asserts system privileges, so is used only for the standard
+ * profiles.
*/
private static ICC_Profile getStandardProfile(final String name) {
-
return AccessController.doPrivileged(
- new PrivilegedAction
- * The {@code byte[]} array is the profile data for the
- * profile. For predefined color spaces {@code null} is
- * written instead of the profile data. If in the future
- * versions of Java API new predefined color spaces will be
- * added, future versions of this class may choose to write
- * for new predefined color spaces not only the color space
- * name, but the profile data as well so that older versions
- * could still deserialize the object.
+ * @param s stream used for serialization
+ * @throws IOException thrown by {@code ObjectInputStream}
+ * @serialData the {@code String} is the name of one of
+ *
+ * The {@code byte[]} array is the profile data for the profile. For
+ * predefined color spaces {@code null} is written instead of the
+ * profile data. If in the future versions of Java API new
+ * predefined color spaces will be added, future versions of this
+ * class may choose to write for new predefined color spaces not
+ * only the color space name, but the profile data as well so that
+ * older versions could still deserialize the object.
*/
private void writeObject(ObjectOutputStream s)
throws IOException
@@ -2009,33 +1972,30 @@
private transient ICC_Profile resolvedDeserializedProfile;
/**
- * Reads default serializable fields from the stream. Reads from
- * the stream a string and an array of bytes as additional data.
+ * Reads default serializable fields from the stream. Reads from the stream
+ * a string and an array of bytes as additional data.
*
- * @param s stream used for deserialization.
- * @throws IOException
- * thrown by {@code ObjectInputStream}.
- * @throws ClassNotFoundException
- * thrown by {@code ObjectInputStream}.
- * @serialData
- * The {@code String} is the name of one of
- *
- * The {@code byte[]} array is the profile data for the
- * profile. It will usually be {@code null} for the
- * predefined profiles.
- *
- * If the string is recognized as a constant name for
- * predefined color space the object will be resolved into
- * profile obtained with
- *
+ * The {@code byte[]} array is the profile data for the profile. It
+ * will usually be {@code null} for the predefined profiles.
+ *
+ * If the string is recognized as a constant name for predefined
+ * color space the object will be resolved into profile obtained
+ * with
+ *
+ * The advantage of this class is that it provides a lookup table that Java
+ * or native methods can use directly to optimize color conversion in some
+ * cases.
*
* To transform from a GRAY device profile color space to the CIEXYZ Profile
- * Connection Space, the device gray component is transformed by
- * a lookup through the tone reproduction curve (TRC). The result is
- * treated as the achromatic component of the PCS.
-
- * 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.
*
- * 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:
*
+ * 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;
--- old/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java 2018-10-24 21:12:21.000000000 -0700
+++ new/src/java.desktop/share/classes/java/awt/color/ProfileDataException.java 2018-10-24 21:12:20.000000000 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, 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
@@ -26,18 +26,23 @@
package java.awt.color;
/**
- * This exception is thrown when an error occurs in accessing or
- * processing an ICC_Profile object.
+ * This exception is thrown when an error occurs in accessing or processing an
+ * {@code ICC_Profile} object.
*/
-
public class ProfileDataException extends java.lang.RuntimeException {
+
+ /**
+ * Use serialVersionUID from JDK 1.2 for interoperability.
+ */
private static final long serialVersionUID = 7286140888240322498L;
/**
- * Constructs a ProfileDataException with the specified detail message.
- * @param s the specified detail message
+ * Constructs a {@code ProfileDataException} with the specified detail
+ * message.
+ *
+ * @param s the specified detail message
*/
public ProfileDataException(String s) {
- super (s);
+ super(s);
}
}
CS_*
constants defined in the
- * {@link ColorSpace} class if the profile object is a profile
- * for a predefined color space (for example
- * {@code "CS_sRGB"}). The string is {@code null}
- * otherwise.
- * CS_*
constants defined in the
+ * {@link ColorSpace} class if the profile object is a profile for a
+ * predefined color space (for example {@code "CS_sRGB"}). The
+ * string is {@code null} otherwise.
+ * CS_*
constants defined in the
- * {@link ColorSpace} class if the profile object is a profile
- * for a predefined color space (for example
- * {@code "CS_sRGB"}). The string is {@code null}
- * otherwise.
- * getInstance(int cspace)
and the profile
- * data are ignored. Otherwise the object will be resolved
- * into profile obtained with
- * getInstance(byte[] data)
.
+ * @param s stream used for deserialization
+ * @throws IOException thrown by {@code ObjectInputStream}
+ * @throws ClassNotFoundException thrown by {@code
+ * ObjectInputStream}
+ * @serialData the {@code String} is the name of one of
+ * CS_*
constants defined in the
+ * {@link ColorSpace} class if the profile object is a profile for a
+ * predefined color space (for example {@code "CS_sRGB"}). The
+ * string is {@code null} otherwise.
+ * getInstance(int cspace)
and the profile data
+ * are
+ * ignored. Otherwise the object will be resolved into profile
+ * obtained with
+ * getInstance(byte[] data)
.
* @see #readResolve()
* @see #getInstance(int)
* @see #getInstance(byte[])
@@ -2075,11 +2035,11 @@
}
/**
- * Resolves instances being deserialized into instances registered
- * with CMM.
- * @return ICC_Profile object for profile registered with CMM.
- * @throws ObjectStreamException
- * never thrown, but mandated by the serialization spec.
+ * Resolves instances being deserialized into instances registered with CMM.
+ *
+ * @return ICC_Profile object for profile registered with CMM
+ * @throws ObjectStreamException never thrown, but mandated by the
+ * serialization spec
* @since 1.3
*/
protected Object readResolve() throws ObjectStreamException {
--- old/src/java.desktop/share/classes/java/awt/color/ICC_ProfileGray.java 2018-10-24 21:12:16.000000000 -0700
+++ new/src/java.desktop/share/classes/java/awt/color/ICC_ProfileGray.java 2018-10-24 21:12:16.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,80 +39,81 @@
import sun.java2d.cmm.ProfileDeferralInfo;
/**
- *
- * A subclass of the ICC_Profile class which represents profiles
- * which meet the following criteria: the color space type of the
- * profile is TYPE_GRAY and the profile includes the grayTRCTag and
- * mediaWhitePointTag tags. Examples of this kind of profile are
- * monochrome input profiles, monochrome display profiles, and
- * monochrome output profiles. The getInstance methods in the
- * ICC_Profile class will
- * return an ICC_ProfileGray object when the above conditions are
- * met. The advantage of this class is that it provides a lookup
- * table that Java or native methods may be able to use directly to
- * optimize color conversion in some cases.
+ * The {@code ICC_ProfileGray} class is a subclass of the {@code ICC_Profile}
+ * class that represents profiles which meet the following criteria: the color
+ * space type of the profile is {@code TYPE_GRAY} and the profile includes the
+ * {@code grayTRCTag} and {@code mediaWhitePointTag} tags. The
+ * {@code getInstance} methods in the {@code ICC_Profile} class will return an
+ * {@code ICC_ProfileGray} object when the above conditions are met. Examples of
+ * this kind of profile are monochrome input profiles, monochrome display
+ * profiles, and monochrome output profiles.
+ *
-
- PCSY = grayTRC[deviceGray]
-
-
- * The inverse transform is done by converting the PCS Y components to
- * device Gray via the inverse of the grayTRC.
+ * Connection Space, the device gray component is transformed by a lookup
+ * through the tone reproduction curve (TRC). The result is treated as the
+ * achromatic component of the PCS.
+ *
+ *
+ * PCSY = grayTRC[deviceGray]
+ *
+ *
+ * The inverse transform is done by converting the PCS Y components to device
+ * Gray via the inverse of the grayTRC.
*/
-
-
-
public class ICC_ProfileGray
extends ICC_Profile {
+ /**
+ * Use serialVersionUID from JDK 1.2 for interoperability.
+ */
static final long serialVersionUID = -1124721290732002649L;
/**
- * Constructs a new ICC_ProfileGray from a CMM ID.
+ * Constructs a new {@code ICC_ProfileGray} from a CMM ID.
*/
ICC_ProfileGray(Profile p) {
super(p);
}
/**
- * Constructs a new ICC_ProfileGray from a ProfileDeferralInfo object.
+ * Constructs a new {@code ICC_ProfileGray} from a
+ * {@code ProfileDeferralInfo} object.
*/
ICC_ProfileGray(ProfileDeferralInfo pdi) {
super(pdi);
}
-
/**
- * Returns a float array of length 3 containing the X, Y, and Z
- * components of the mediaWhitePointTag in the ICC profile.
- * @return an array containing the components of the
- * mediaWhitePointTag in the ICC profile.
+ * Returns a float array of length 3 containing the X, Y, and Z components
+ * of the mediaWhitePointTag in the ICC profile.
+ *
+ * @return an array containing the components of the mediaWhitePointTag in
+ * the ICC profile
*/
public float[] getMediaWhitePoint() {
return super.getMediaWhitePoint();
}
-
/**
- * Returns a gamma value representing the tone reproduction
- * curve (TRC). If the profile represents the TRC as a table rather
- * than a single gamma value, then an exception is thrown. In this
- * case the actual table can be obtained via getTRC(). When
- * using a gamma value, the PCS Y component is computed as follows:
-
-
- gamma
- PCSY = deviceGray
-
-
- * @return the gamma value as a float.
- * @exception ProfileDataException if the profile does not specify
- * the TRC as a single gamma value.
+ * Returns a gamma value representing the tone reproduction curve (TRC). If
+ * the profile represents the TRC as a table rather than a single gamma
+ * value, then an exception is thrown. In this case the actual table can be
+ * obtained via {@code getTRC()}. When using a gamma value, the PCS Y
+ * component is computed as follows:
+ *
+ *
+ * gamma
+ * PCSY = deviceGray
+ *
+ *
+ *
+ * @return the gamma value as a float
+ * @throws ProfileDataException if the profile does not specify the TRC as a
+ * single gamma value
*/
public float getGamma() {
float theGamma;
@@ -123,22 +123,22 @@
}
/**
- * Returns the TRC as an array of shorts. If the profile has
- * specified the TRC as linear (gamma = 1.0) or as a simple gamma
- * value, this method throws an exception, and the getGamma() method
- * should be used to get the gamma value. Otherwise the short array
- * returned here represents a lookup table where the input Gray 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 may be used to generate output values for
- * input values which 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, i.e. the values are really unsigned
- * short values, although they are returned in a short array.
- * @return a short array representing the TRC.
- * @exception ProfileDataException if the profile does not specify
- * the TRC as a table.
+ * Returns the TRC as an array of shorts. If the profile has specified the
+ * TRC as linear (gamma = 1.0) or as a simple gamma value, this method
+ * throws an exception, and the {@code getGamma()} method should be used to
+ * get the gamma value. Otherwise the short array returned here represents a
+ * lookup table where the input Gray 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 may be used to generate output
+ * values for input values which 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, i.e.
+ * the values are really unsigned short values, although they are returned
+ * in a short array.
+ *
+ * @return a short array representing the TRC
+ * @throws ProfileDataException if the profile does not specify the TRC as a
+ * table
*/
public short[] getTRC() {
short[] theTRC;
--- 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.
*
*
* 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}.
*
*
* 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.
+ *