summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/image/ColorModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/image/ColorModel.java')
-rw-r--r--awt/java/awt/image/ColorModel.java964
1 files changed, 0 insertions, 964 deletions
diff --git a/awt/java/awt/image/ColorModel.java b/awt/java/awt/image/ColorModel.java
deleted file mode 100644
index 1b084e1..0000000
--- a/awt/java/awt/image/ColorModel.java
+++ /dev/null
@@ -1,964 +0,0 @@
-/*
- * 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 Igor V. Stolyarov
- * @version $Revision$
- */
-
-package java.awt.image;
-
-import java.awt.Transparency;
-import java.awt.color.ColorSpace;
-import java.util.Arrays;
-
-import org.apache.harmony.awt.internal.nls.Messages;
-
-/**
- * The class ColorModel.
- *
- * @since Android 1.0
- */
-public abstract class ColorModel implements Transparency {
-
- /**
- * The pixel_bits.
- */
- protected int pixel_bits; // Pixel length in bits
-
- /**
- * The transfer type.
- */
- protected int transferType;
-
- /**
- * The cs.
- */
- ColorSpace cs;
-
- /**
- * The has alpha.
- */
- boolean hasAlpha;
-
- /**
- * The is alpha premultiplied.
- */
- boolean isAlphaPremultiplied;
-
- /**
- * The transparency.
- */
- int transparency;
-
- /**
- * The num color components.
- */
- int numColorComponents;
-
- /**
- * The num components.
- */
- int numComponents;
-
- /**
- * The bits.
- */
- int[] bits; // Array of components masks
-
- /**
- * The max values.
- */
- int[] maxValues = null; // Max values that may be represent by color
-
- // components
-
- /**
- * The max bit length.
- */
- int maxBitLength; // Max length color components in bits
-
- /**
- * The RG bdefault.
- */
- private static ColorModel RGBdefault;
-
- /**
- * Instantiates a new color model with the specified values.
- *
- * @param pixel_bits
- * the pixel length in bits.
- * @param bits
- * the array of component masks.
- * @param cspace
- * the color space.
- * @param hasAlpha
- * whether the color model has alpha.
- * @param isAlphaPremultiplied
- * whether the alpha is pre-multiplied.
- * @param transparency
- * the transparency strategy, @see java.awt.Transparency.
- * @param transferType
- * the transfer type (primitive java type to use for the
- * components).
- */
- protected ColorModel(int pixel_bits, int[] bits, ColorSpace cspace, boolean hasAlpha,
- boolean isAlphaPremultiplied, int transparency, int transferType) {
-
- if (pixel_bits < 1) {
- // awt.26B=The number of bits in the pixel values is less than 1
- throw new IllegalArgumentException(Messages.getString("awt.26B")); //$NON-NLS-1$
- }
-
- if (bits == null) {
- // awt.26C=bits is null
- throw new NullPointerException(Messages.getString("awt.26C")); //$NON-NLS-1$
- }
-
- int sum = 0;
- for (int element : bits) {
- if (element < 0) {
- // awt.26D=The elements in bits is less than 0
- throw new IllegalArgumentException(Messages.getString("awt.26D")); //$NON-NLS-1$
- }
- sum += element;
- }
-
- if (sum < 1) {
- // awt.26E=The sum of the number of bits in bits is less than 1
- throw new NullPointerException(Messages.getString("awt.26E")); //$NON-NLS-1$
- }
-
- if (cspace == null) {
- // awt.26F=The cspace is null
- throw new IllegalArgumentException(Messages.getString("awt.26F")); //$NON-NLS-1$
- }
-
- if (transparency < Transparency.OPAQUE || transparency > Transparency.TRANSLUCENT) {
- // awt.270=The transparency is not a valid value
- throw new IllegalArgumentException(Messages.getString("awt.270")); //$NON-NLS-1$
- }
-
- this.pixel_bits = pixel_bits;
- this.bits = bits.clone();
-
- maxValues = new int[bits.length];
- maxBitLength = 0;
- for (int i = 0; i < maxValues.length; i++) {
- maxValues[i] = (1 << bits[i]) - 1;
- if (bits[i] > maxBitLength) {
- maxBitLength = bits[i];
- }
- }
-
- cs = cspace;
- this.hasAlpha = hasAlpha;
- this.isAlphaPremultiplied = isAlphaPremultiplied;
- numColorComponents = cs.getNumComponents();
-
- if (hasAlpha) {
- numComponents = numColorComponents + 1;
- } else {
- numComponents = numColorComponents;
- }
-
- this.transparency = transparency;
- this.transferType = transferType;
-
- }
-
- /**
- * Instantiates a new color model with the specified pixel bit depth. The
- * transferType is chosen based on the pixel bits, and the other data fields
- * are given default values.
- *
- * @param bits
- * the array of component masks.
- */
- public ColorModel(int bits) {
-
- if (bits < 1) {
- // awt.271=The number of bits in bits is less than 1
- throw new IllegalArgumentException(Messages.getString("awt.271")); //$NON-NLS-1$
- }
-
- pixel_bits = bits;
- transferType = getTransferType(bits);
- cs = ColorSpace.getInstance(ColorSpace.CS_sRGB);
- hasAlpha = true;
- isAlphaPremultiplied = false;
- transparency = Transparency.TRANSLUCENT;
-
- numColorComponents = 3;
- numComponents = 4;
-
- this.bits = null;
- }
-
- /**
- * Gets the data elements from the specified component array, transforming
- * them according to rules of the color model.
- *
- * @param components
- * the components.
- * @param offset
- * the offset in the normComponents array.
- * @param obj
- * the array that the result is written to: an array of values
- * whose length must be the number of components used by the
- * color model and whose type depends on the transfer type (based
- * on the pixel bit depth), or null to have the appropriate array
- * created.
- * @return the array of data elements.
- */
- public Object getDataElements(int[] components, int offset, Object obj) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the data elements from the specified array of normalized components.
- *
- * @param normComponents
- * the array normalized components.
- * @param normOffset
- * the offset in the normComponents array.
- * @param obj
- * the array that the result is written to: an array of values
- * whose length must be the number of components used by the
- * color model and whose type depends on the transfer type (based
- * on the pixel bit depth), or null to have the appropriate array
- * created.
- * @return the array of data elements.
- */
- public Object getDataElements(float[] normComponents, int normOffset, Object obj) {
- int unnormComponents[] = getUnnormalizedComponents(normComponents, normOffset, null, 0);
- return getDataElements(unnormComponents, 0, obj);
- }
-
- /**
- * Gets the data elements corresponding to the pixel determined by the RGB
- * data.
- *
- * @param rgb
- * the RGB integer value that defines the pixel.
- * @param pixel
- * the array that the result is written to: an array of values
- * whose length must be the number of components used by the
- * color model and whose type depends on the transfer type (based
- * on the pixel bit depth), or null to have the appropriate array
- * created.
- * @return the array of data elements.
- */
- public Object getDataElements(int rgb, Object pixel) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the child raster corresponding to the alpha channel of the specified
- * writable raster, or null if alpha is not supported.
- *
- * @param raster
- * the raster.
- * @return the alpha raster.
- */
- public WritableRaster getAlphaRaster(WritableRaster raster) {
- return null;
- }
-
- /**
- * Creates a new color model by coercing the data in the writable raster in
- * accordance with the alpha strategy of this color model.
- *
- * @param raster
- * the raster.
- * @param isAlphaPremultiplied
- * whether the alpha is pre-multiplied in this color model
- * @return the new color model.
- */
- public ColorModel coerceData(WritableRaster raster, boolean isAlphaPremultiplied) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- @Override
- public String toString() {
- // The output format based on 1.5 release behavior.
- // It could be reveled such way:
- // ColorModel cm = new
- // ComponentColorModel(ColorSpace.getInstance(ColorSpace.CS_sRGB,
- // false, false, Transparency.OPAQUE, DataBuffer.TYPE_BYTE);
- // System.out.println(cm.toString());
- return "ColorModel: Color Space = " + cs.toString() + "; has alpha = " //$NON-NLS-1$ //$NON-NLS-2$
- + hasAlpha + "; is alpha premultipied = " //$NON-NLS-1$
- + isAlphaPremultiplied + "; transparency = " + transparency //$NON-NLS-1$
- + "; number color components = " + numColorComponents //$NON-NLS-1$
- + "; pixel bits = " + pixel_bits + "; transfer type = " //$NON-NLS-1$ //$NON-NLS-2$
- + transferType;
- }
-
- /**
- * Gets the components of the pixel determined by the data array.
- *
- * @param pixel
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @param components
- * the the array where the resulting components are written (or
- * null to prompt the method to create the return array).
- * @param offset
- * the offset that tells where the results should be written in
- * the return array.
- * @return the array of components.
- */
- public int[] getComponents(Object pixel, int[] components, int offset) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the normalized components of the pixel determined by the data array.
- *
- * @param pixel
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @param normComponents
- * the array where the resulting normalized components are
- * written (or null to prompt the method to create the return
- * array).
- * @param normOffset
- * the offset that tells where the results should be written in
- * the return array.
- * @return the array of normalized components.
- */
- public float[] getNormalizedComponents(Object pixel, float[] normComponents, int normOffset) {
-
- if (pixel == null) {
- // awt.294=pixel is null
- throw new NullPointerException(Messages.getString("awt.294")); //$NON-NLS-1$
- }
-
- int unnormComponents[] = getComponents(pixel, null, 0);
- return getNormalizedComponents(unnormComponents, 0, normComponents, normOffset);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (!(obj instanceof ColorModel)) {
- return false;
- }
- ColorModel cm = (ColorModel)obj;
-
- return (pixel_bits == cm.getPixelSize() && transferType == cm.getTransferType()
- && cs.getType() == cm.getColorSpace().getType() && hasAlpha == cm.hasAlpha()
- && isAlphaPremultiplied == cm.isAlphaPremultiplied()
- && transparency == cm.getTransparency()
- && numColorComponents == cm.getNumColorComponents()
- && numComponents == cm.getNumComponents() && Arrays.equals(bits, cm
- .getComponentSize()));
- }
-
- /**
- * Gets the red component of the pixel determined by the data array.
- *
- * @param inData
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @return the red.
- */
- public int getRed(Object inData) {
- return getRed(constructPixel(inData));
- }
-
- /**
- * Gets the RGB integer value corresponding to the pixel defined by the data
- * array.
- *
- * @param inData
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @return the integer value that gives the pixel's colors in RGB format.
- */
- public int getRGB(Object inData) {
- return (getAlpha(inData) << 24 | getRed(inData) << 16 | getGreen(inData) << 8 | getBlue(inData));
- }
-
- /**
- * Gets the green component of the pixel defined by the data array.
- *
- * @param inData
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @return the green.
- */
- public int getGreen(Object inData) {
- return getGreen(constructPixel(inData));
- }
-
- /**
- * Gets the blue component of the pixel defined by the data array.
- *
- * @param inData
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @return the blue.
- */
- public int getBlue(Object inData) {
- return getBlue(constructPixel(inData));
- }
-
- /**
- * Gets the alpha component of the pixel defined by the data array.
- *
- * @param inData
- * the data array that defines the pixel (whose primitive type
- * corresponds to the pixel length in bits.
- * @see ColorModel#getTransferType()
- * @return the alpha.
- */
- public int getAlpha(Object inData) {
- return getAlpha(constructPixel(inData));
- }
-
- /**
- * Creates a compatible writable raster.
- *
- * @param w
- * the width of the desired writable raster.
- * @param h
- * the height of the desired writable raster.
- * @return the writable raster.
- */
- public WritableRaster createCompatibleWritableRaster(int w, int h) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Checks if the sample model is compatible with this color model.
- *
- * @param sm
- * the sample model.
- * @return true, if the sample model is compatible with this color model.
- */
- public boolean isCompatibleSampleModel(SampleModel sm) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Creates the compatible sample model.
- *
- * @param w
- * the width of the desired sample model.
- * @param h
- * the height of the desired sample model.
- * @return the sample model.
- */
- public SampleModel createCompatibleSampleModel(int w, int h) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Checks if the specified raster is compatible with this color model.
- *
- * @param raster
- * the raster to inspect.
- * @return true, if the raster is compatible with this color model.
- */
- public boolean isCompatibleRaster(Raster raster) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the color space of this color model.
- *
- * @return the color space.
- */
- public final ColorSpace getColorSpace() {
- return cs;
- }
-
- /**
- * Gets the normalized components corresponding to the specified
- * unnormalized components.
- *
- * @param components
- * the array of unnormalized components.
- * @param offset
- * the offset where the components should be read from the array
- * of unnormalized components.
- * @param normComponents
- * the array where the resulting normalized components are
- * written (or null to prompt the method to create the return
- * array).
- * @param normOffset
- * the offset that tells where the results should be written in
- * the return array.
- * @return the normalized components.
- */
- public float[] getNormalizedComponents(int[] components, int offset, float normComponents[],
- int normOffset) {
- if (bits == null) {
- // awt.26C=bits is null
- throw new UnsupportedOperationException(Messages.getString("awt.26C")); //$NON-NLS-1$
- }
-
- if (normComponents == null) {
- normComponents = new float[numComponents + normOffset];
- }
-
- if (hasAlpha && isAlphaPremultiplied) {
- float normAlpha = (float)components[offset + numColorComponents]
- / maxValues[numColorComponents];
- if (normAlpha != 0.0f) {
- for (int i = 0; i < numColorComponents; i++) {
- normComponents[normOffset + i] = components[offset + i]
- / (normAlpha * maxValues[i]);
- }
- normComponents[normOffset + numColorComponents] = normAlpha;
- } else {
- for (int i = 0; i < numComponents; i++) {
- normComponents[normOffset + i] = 0.0f;
- }
- }
- } else {
- for (int i = 0; i < numComponents; i++) {
- normComponents[normOffset + i] = (float)components[offset + i] / maxValues[i];
- }
- }
-
- return normComponents;
- }
-
- /**
- * Gets the data element corresponding to the unnormalized components.
- *
- * @param components
- * the components.
- * @param offset
- * the offset to start reading the components from the array of
- * components.
- * @return the data element.
- */
- public int getDataElement(int[] components, int offset) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the unnormalized components corresponding to the specified
- * normalized components.
- *
- * @param normComponents
- * the array of normalized components.
- * @param normOffset
- * the offset where the components should be read from the array
- * of normalized components.
- * @param components
- * the array where the resulting unnormalized components are
- * written (or null to prompt the method to create the return
- * array).
- * @param offset
- * the offset that tells where the results should be written in
- * the return array.
- * @return the unnormalized components.
- */
- public int[] getUnnormalizedComponents(float normComponents[], int normOffset,
- int components[], int offset) {
-
- if (bits == null) {
- // awt.26C=bits is null
- throw new UnsupportedOperationException(Messages.getString("awt.26C")); //$NON-NLS-1$
- }
-
- if (normComponents.length - normOffset < numComponents) {
- // awt.273=The length of normComponents minus normOffset is less
- // than numComponents
- throw new IllegalArgumentException(Messages.getString("awt.273")); //$NON-NLS-1$
- }
-
- if (components == null) {
- components = new int[numComponents + offset];
- } else {
- if (components.length - offset < numComponents) {
- // awt.272=The length of components minus offset is less than
- // numComponents
- throw new IllegalArgumentException(Messages.getString("awt.272")); //$NON-NLS-1$
- }
- }
-
- if (hasAlpha && isAlphaPremultiplied) {
- float alpha = normComponents[normOffset + numColorComponents];
- for (int i = 0; i < numColorComponents; i++) {
- components[offset + i] = (int)(normComponents[normOffset + i] * maxValues[i]
- * alpha + 0.5f);
- }
- components[offset + numColorComponents] = (int)(normComponents[normOffset
- + numColorComponents]
- * maxValues[numColorComponents] + 0.5f);
- } else {
- for (int i = 0; i < numComponents; i++) {
- components[offset + i] = (int)(normComponents[normOffset + i] * maxValues[i] + 0.5f);
- }
- }
-
- return components;
- }
-
- /**
- * Gets the data element corresponding to the normalized components.
- *
- * @param normComponents
- * the normalized components.
- * @param normOffset
- * the offset where the normalized components should be read from
- * the normalized component array.
- * @return the data element.
- */
- public int getDataElement(float normComponents[], int normOffset) {
- int unnormComponents[] = getUnnormalizedComponents(normComponents, normOffset, null, 0);
- return getDataElement(unnormComponents, 0);
- }
-
- /**
- * Takes a pixel whose data is defined by an integer, and writes the
- * corresponding components into the components array, starting from the
- * index offset.
- *
- * @param pixel
- * the pixel data.
- * @param components
- * the data array to write the components to (or null to have the
- * method create the return array).
- * @param offset
- * the offset that determines where the results are written in
- * the components array.
- * @return the array of components corresponding to the pixel.
- */
- public int[] getComponents(int pixel, int components[], int offset) {
- throw new UnsupportedOperationException("This method is not " + //$NON-NLS-1$
- "supported by this ColorModel"); //$NON-NLS-1$
- }
-
- /**
- * Gets the red component of the pixel determined by the pixel data.
- *
- * @param pixel
- * the pixel.
- * @return the red component of the given pixel.
- */
- public abstract int getRed(int pixel);
-
- /**
- * Takes the pixel data and returns the integer value corresponding to the
- * pixel's color in RGB format.
- *
- * @param pixel
- * the pixel data.
- * @return the corresponding RGB integer value.
- */
- public int getRGB(int pixel) {
- return (getAlpha(pixel) << 24 | getRed(pixel) << 16 | getGreen(pixel) << 8 | getBlue(pixel));
- }
-
- /**
- * Gets the green component of the pixel determined by the pixel data.
- *
- * @param pixel
- * the pixel.
- * @return the green component of the given pixel.
- */
- public abstract int getGreen(int pixel);
-
- /**
- * Gets the size of the desired component of this color model.
- *
- * @param componentIdx
- * the index that determines which component size to get.
- * @return the component size corresponding to the index.
- * @throws NullPointerException
- * if this color model doesn't support an array of separate
- * components.
- * @throws ArrayIndexOutOfBoundsException
- * if the index is negative or greater than or equal to the
- * number of components.
- */
- public int getComponentSize(int componentIdx) {
- if (bits == null) {
- // awt.26C=bits is null
- throw new NullPointerException(Messages.getString("awt.26C")); //$NON-NLS-1$
- }
-
- if (componentIdx < 0 || componentIdx >= bits.length) {
- // awt.274=componentIdx is greater than the number of components or
- // less than zero
- throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.274")); //$NON-NLS-1$
- }
-
- return bits[componentIdx];
- }
-
- /**
- * Gets the blue component of the pixel determined by the pixel data.
- *
- * @param pixel
- * the pixel.
- * @return the blue component of the given pixel.
- */
- public abstract int getBlue(int pixel);
-
- /**
- * Gets the alpha component of the pixel determined by the pixel data.
- *
- * @param pixel
- * the pixel.
- * @return the alpha component of the given pixel.
- */
- public abstract int getAlpha(int pixel);
-
- /**
- * Gets the array of sizes of the different components.
- *
- * @return the array of sizes of the different components.
- */
- public int[] getComponentSize() {
- if (bits != null) {
- return bits.clone();
- }
- return null;
- }
-
- /**
- * Checks if the alpha component is pre-multiplied.
- *
- * @return true, if the alpha component is pre-multiplied.
- */
- public final boolean isAlphaPremultiplied() {
- return isAlphaPremultiplied;
- }
-
- /**
- * Checks whether this color model supports alpha.
- *
- * @return true, if this color model has alpha.
- */
- public final boolean hasAlpha() {
- return hasAlpha;
- }
-
- @Override
- public int hashCode() {
- int hash = 0;
- int tmp;
-
- if (hasAlpha) {
- hash ^= 1;
- hash <<= 8;
- }
- if (isAlphaPremultiplied) {
- hash ^= 1;
- hash <<= 8;
- }
-
- tmp = hash >>> 24;
- hash ^= numColorComponents;
- hash <<= 8;
- hash |= tmp;
-
- tmp = hash >>> 24;
- hash ^= transparency;
- hash <<= 8;
- hash |= tmp;
-
- tmp = hash >>> 24;
- hash ^= cs.getType();
- hash <<= 8;
- hash |= tmp;
-
- tmp = hash >>> 24;
- hash ^= pixel_bits;
- hash <<= 8;
- hash |= tmp;
-
- tmp = hash >>> 24;
- hash ^= transferType;
- hash <<= 8;
- hash |= tmp;
-
- if (bits != null) {
-
- for (int element : bits) {
- tmp = hash >>> 24;
- hash ^= element;
- hash <<= 8;
- hash |= tmp;
- }
-
- }
-
- return hash;
- }
-
- public int getTransparency() {
- return transparency;
- }
-
- /**
- * Gets the transfer type, which is the type of Java primitive value that
- * corresponds to the bit length per pixel: either
- * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT},
- * {@link DataBuffer#TYPE_INT}, or {@link DataBuffer#TYPE_UNDEFINED}.
- *
- * @return the transfer type.
- */
- public final int getTransferType() {
- return transferType;
- }
-
- /**
- * Gets the pixel size in bits.
- *
- * @return the pixel size.
- */
- public int getPixelSize() {
- return pixel_bits;
- }
-
- /**
- * Gets the number of components of this color model.
- *
- * @return the number of components.
- */
- public int getNumComponents() {
- return numComponents;
- }
-
- /**
- * Gets the number of color components of this color model.
- *
- * @return the number color components.
- */
- public int getNumColorComponents() {
- return numColorComponents;
- }
-
- /**
- * Gets the default RGB color model.
- *
- * @return the default RGB color model.
- */
- public static ColorModel getRGBdefault() {
- if (RGBdefault == null) {
- RGBdefault = new DirectColorModel(32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000);
- }
- return RGBdefault;
- }
-
- /*
- * Construct INT pixel representation from Object
- * @param obj
- * @return
- */
- /**
- * Construct pixel.
- *
- * @param obj
- * the obj.
- * @return the int.
- */
- private int constructPixel(Object obj) {
- int pixel = 0;
-
- switch (getTransferType()) {
-
- case DataBuffer.TYPE_BYTE:
- byte[] bPixel = (byte[])obj;
- if (bPixel.length > 1) {
- // awt.275=This pixel representation is not suuported by tis
- // Color Model
- throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$
- }
- pixel = bPixel[0] & 0xff;
- break;
-
- case DataBuffer.TYPE_USHORT:
- short[] sPixel = (short[])obj;
- if (sPixel.length > 1) {
- // awt.275=This pixel representation is not suuported by tis
- // Color Model
- throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$
- }
- pixel = sPixel[0] & 0xffff;
- break;
-
- case DataBuffer.TYPE_INT:
- int[] iPixel = (int[])obj;
- if (iPixel.length > 1) {
- // awt.275=This pixel representation is not suuported by tis
- // Color Model
- throw new UnsupportedOperationException(Messages.getString("awt.275")); //$NON-NLS-1$
- }
- pixel = iPixel[0];
- break;
-
- default:
- // awt.22D=This transferType ( {0} ) is not supported by this
- // color model
- throw new UnsupportedOperationException(Messages.getString("awt.22D", //$NON-NLS-1$
- transferType));
-
- }
- return pixel;
- }
-
- /**
- * Gets the transfer type, which is the type of Java primitive value that
- * corresponds to the bit length per pixel: either
- * {@link DataBuffer#TYPE_BYTE}, {@link DataBuffer#TYPE_USHORT},
- * {@link DataBuffer#TYPE_INT}, or {@link DataBuffer#TYPE_UNDEFINED}.
- *
- * @param bits
- * the array of component masks.
- * @return the transfer type.
- */
- static int getTransferType(int bits) {
- if (bits <= 8) {
- return DataBuffer.TYPE_BYTE;
- } else if (bits <= 16) {
- return DataBuffer.TYPE_USHORT;
- } else if (bits <= 32) {
- return DataBuffer.TYPE_INT;
- } else {
- return DataBuffer.TYPE_UNDEFINED;
- }
- }
-
- @Override
- public void finalize() {
- // This method is added for the API compatibility
- // Don't need to call super since Object's finalize is always empty
- }
-}