| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| * @author Oleg V. Khaschansky |
| * @version $Revision$ |
| */ |
| package java.awt.color; |
| |
| import org.apache.harmony.awt.internal.nls.Messages; |
| |
| /** |
| * The ICC_ProfileRGB class represents profiles with RGB color space type and |
| * contains the redColorantTag, greenColorantTag, blueColorantTag, redTRCTag, |
| * greenTRCTag, blueTRCTag, and mediaWhitePointTag tags. |
| * |
| * @since Android 1.0 |
| */ |
| public class ICC_ProfileRGB extends ICC_Profile { |
| |
| /** |
| * The Constant serialVersionUID. |
| */ |
| private static final long serialVersionUID = 8505067385152579334L; |
| |
| /** |
| * Instantiates a new RGB ICC_Profile. |
| * |
| * @param profileHandle |
| * the profile handle |
| */ |
| ICC_ProfileRGB(long profileHandle) { |
| super(profileHandle); |
| } |
| |
| /** |
| * The Constant REDCOMPONENT indicates the red component. |
| */ |
| public static final int REDCOMPONENT = 0; |
| |
| /** |
| * The Constant GREENCOMPONENT indicates the green component. |
| */ |
| public static final int GREENCOMPONENT = 1; |
| |
| /** |
| * The Constant BLUECOMPONENT indicates the blue component. |
| */ |
| public static final int BLUECOMPONENT = 2; |
| |
| // awt.15E=Unknown component. Must be REDCOMPONENT, GREENCOMPONENT or BLUECOMPONENT. |
| /** |
| * The Constant UNKNOWN_COMPONENT_MSG. |
| */ |
| private static final String UNKNOWN_COMPONENT_MSG = Messages |
| .getString("awt.15E"); //$NON-NLS-1$ |
| |
| /** |
| * Gets the TRC. |
| * |
| * @param component |
| * the tag signature. |
| * @return the TRC value. |
| */ |
| @Override |
| public short[] getTRC(int component) { |
| switch (component) { |
| case REDCOMPONENT: |
| return super.getTRC(icSigRedTRCTag); |
| case GREENCOMPONENT: |
| return super.getTRC(icSigGreenTRCTag); |
| case BLUECOMPONENT: |
| return super.getTRC(icSigBlueTRCTag); |
| default: |
| } |
| |
| throw new IllegalArgumentException(UNKNOWN_COMPONENT_MSG); |
| } |
| |
| /** |
| * Gets the gamma. |
| * |
| * @param component |
| * the tag signature. |
| * @return the gamma value. |
| */ |
| @Override |
| public float getGamma(int component) { |
| switch (component) { |
| case REDCOMPONENT: |
| return super.getGamma(icSigRedTRCTag); |
| case GREENCOMPONENT: |
| return super.getGamma(icSigGreenTRCTag); |
| case BLUECOMPONENT: |
| return super.getGamma(icSigBlueTRCTag); |
| default: |
| } |
| |
| throw new IllegalArgumentException(UNKNOWN_COMPONENT_MSG); |
| } |
| |
| /** |
| * Gets a float matrix which contains the X, Y, and Z components of the |
| * profile's redColorantTag, greenColorantTag, and blueColorantTag. |
| * |
| * @return the float matrix which contains the X, Y, and Z components of the |
| * profile's redColorantTag, greenColorantTag, and blueColorantTag. |
| */ |
| public float[][] getMatrix() { |
| float [][] m = new float[3][3]; // The matrix |
| |
| float[] redXYZ = getXYZValue(icSigRedColorantTag); |
| float[] greenXYZ = getXYZValue(icSigGreenColorantTag); |
| float[] blueXYZ = getXYZValue(icSigBlueColorantTag); |
| |
| m[0][0] = redXYZ[0]; |
| m[1][0] = redXYZ[1]; |
| m[2][0] = redXYZ[2]; |
| |
| m[0][1] = greenXYZ[0]; |
| m[1][1] = greenXYZ[1]; |
| m[2][1] = greenXYZ[2]; |
| |
| m[0][2] = blueXYZ[0]; |
| m[1][2] = blueXYZ[1]; |
| m[2][2] = blueXYZ[2]; |
| |
| return m; |
| } |
| |
| /** |
| * Gets the media white point. |
| * |
| * @return the media white point. |
| */ |
| @Override |
| public float[] getMediaWhitePoint() { |
| return super.getMediaWhitePoint(); |
| } |
| } |
| |