summaryrefslogtreecommitdiffstats
path: root/awt/org/apache/harmony/awt/gl/color/ICC_Transform.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/org/apache/harmony/awt/gl/color/ICC_Transform.java')
-rw-r--r--awt/org/apache/harmony/awt/gl/color/ICC_Transform.java156
1 files changed, 0 insertions, 156 deletions
diff --git a/awt/org/apache/harmony/awt/gl/color/ICC_Transform.java b/awt/org/apache/harmony/awt/gl/color/ICC_Transform.java
deleted file mode 100644
index 27646c4..0000000
--- a/awt/org/apache/harmony/awt/gl/color/ICC_Transform.java
+++ /dev/null
@@ -1,156 +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 Oleg V. Khaschansky
- * @version $Revision$
- */
-package org.apache.harmony.awt.gl.color;
-
-import java.awt.color.ICC_Profile;
-
-import org.apache.harmony.awt.gl.color.NativeCMM;
-
-/**
- * This class encapsulates native ICC transform object, is responsible for its
- * creation, destruction and passing its handle to the native CMM.
- */
-public class ICC_Transform {
- private long transformHandle;
- private int numInputChannels;
- private int numOutputChannels;
- private ICC_Profile src;
- private ICC_Profile dst;
-
-
- /**
- * @return Returns the number of input channels.
- */
- public int getNumInputChannels() {
- return numInputChannels;
- }
-
- /**
- * @return Returns the number of output channels.
- */
- public int getNumOutputChannels() {
- return numOutputChannels;
- }
-
- /**
- * @return Returns the dst.
- */
- public ICC_Profile getDst() {
- return dst;
- }
-
- /**
- * @return Returns the src.
- */
- public ICC_Profile getSrc() {
- return src;
- }
-
- /**
- * Constructs a multiprofile ICC transform
- * @param profiles - list of ICC profiles
- * @param renderIntents - only hints for CMM
- */
- public ICC_Transform(ICC_Profile[] profiles, int[] renderIntents) {
- int numProfiles = profiles.length;
-
- long[] profileHandles = new long[numProfiles];
- for (int i=0; i<numProfiles; i++) {
- profileHandles[i] = NativeCMM.getHandle(profiles[i]);
- }
-
- transformHandle = NativeCMM.cmmCreateMultiprofileTransform(
- profileHandles,
- renderIntents);
-
- src = profiles[0];
- dst = profiles[numProfiles-1];
- numInputChannels = src.getNumComponents();
- numOutputChannels = dst.getNumComponents();
- }
-
- /**
- * This constructor is able to set intents by default
- * @param profiles - list of ICC profiles
- */
- public ICC_Transform(ICC_Profile[] profiles) {
- int numProfiles = profiles.length;
- int[] renderingIntents = new int[numProfiles];
-
- // Default is perceptual
- int currRenderingIntent = ICC_Profile.icPerceptual;
-
- // render as colorimetric for output device
- if (profiles[0].getProfileClass() == ICC_Profile.CLASS_OUTPUT) {
- currRenderingIntent = ICC_Profile.icRelativeColorimetric;
- }
-
- // get the transforms from each profile
- for (int i = 0; i < numProfiles; i++) {
- // first or last profile cannot be abstract
- // if profile is abstract, the only possible way is
- // use AToB0Tag (perceptual), see ICC spec
- if (i != 0 &&
- i != numProfiles - 1 &&
- profiles[i].getProfileClass() == ICC_Profile.CLASS_ABSTRACT
- ) {
- currRenderingIntent = ICC_Profile.icPerceptual;
- }
-
- renderingIntents[i] = currRenderingIntent;
- // use current rendering intent
- // to select LUT from the next profile (chaining)
- currRenderingIntent =
- ICC_ProfileHelper.getRenderingIntent(profiles[i]);
- }
-
- // Get the profile handles and go ahead
- long[] profileHandles = new long[numProfiles];
- for (int i=0; i<numProfiles; i++) {
- profileHandles[i] = NativeCMM.getHandle(profiles[i]);
- }
-
- transformHandle = NativeCMM.cmmCreateMultiprofileTransform(
- profileHandles,
- renderingIntents);
-
- src = profiles[0];
- dst = profiles[numProfiles-1];
- numInputChannels = src.getNumComponents();
- numOutputChannels = dst.getNumComponents();
- }
-
- @Override
- protected void finalize() {
- if (transformHandle != 0) {
- NativeCMM.cmmDeleteTransform(transformHandle);
- }
- }
-
- /**
- * Invokes native color conversion
- * @param src - source image format
- * @param dst - destination image format
- */
- public void translateColors(NativeImageFormat src, NativeImageFormat dst) {
- NativeCMM.cmmTranslateColors(transformHandle, src, dst);
- }
-} \ No newline at end of file