blob: 9c6010fcde63c2114dd50d014df8f11ef5a20f3f [file] [log] [blame]
/*
* 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();
}
}