19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * this work for additional information regarding copyright ownership. 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * (the "License"); you may not use this file except in compliance with 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @author Oleg V. Khaschansky 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @version $Revision$ 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage java.awt.color; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.File; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileInputStream; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileNotFoundException; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.FileOutputStream; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.IOException; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.InputStream; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.ObjectInputStream; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.ObjectOutputStream; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.ObjectStreamException; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.OutputStream; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.io.Serializable; 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.security.AccessController; 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.security.PrivilegedAction; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport java.util.StringTokenizer; 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.color.ICC_ProfileHelper; 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.gl.color.NativeCMM; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport org.apache.harmony.awt.internal.nls.Messages; 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ICC_Profile class represents a color profile data for color spaces based 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * on the International Color Consortium Specification ICC.1:2001-12, File 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Format for Color Profiles. 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @since Android 1.0 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ICC_Profile implements Serializable { 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant serialVersionUID. 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final long serialVersionUID = -3938515861990936766L; 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // NOTE: Constant field values are noted in 1.5 specification. 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_INPUT indicates that profile class is input. 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_INPUT = 0; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_DISPLAY indicates that profile class is display. 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_DISPLAY = 1; 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_OUTPUT indicates that profile class is output. 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_OUTPUT = 2; 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_DEVICELINK indicates that profile class is device 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * link. 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_DEVICELINK = 3; 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_COLORSPACECONVERSION indicates that profile class is 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * color space conversion. 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_COLORSPACECONVERSION = 4; 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_ABSTRACT indicates that profile class is abstract. 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_ABSTRACT = 5; 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant CLASS_NAMEDCOLOR indicates that profile class is named 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * color. 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int CLASS_NAMEDCOLOR = 6; 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigXYZData - ICC Profile Color Space Type Signature. 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigXYZData = 1482250784; 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigLabData - ICC Profile Color Space Type Signature. 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigLabData = 1281450528; 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigLuvData - ICC Profile Color Space Type Signature. 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigLuvData = 1282766368; 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigYCbCrData - ICC Profile Color Space Type Signature. 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigYCbCrData = 1497588338; 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigYxyData - ICC Profile Color Space Type Signature. 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigYxyData = 1501067552; 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigRgbData - ICC Profile Color Space Type Signature. 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigRgbData = 1380401696; 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGrayData - ICC Profile Color Space Type Signature. 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGrayData = 1196573017; 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigHsvData - ICC Profile Color Space Type Signature. 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigHsvData = 1213421088; 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigHlsData - ICC Profile Color Space Type Signature. 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigHlsData = 1212961568; 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCmykData - ICC Profile Color Space Type Signature. 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCmykData = 1129142603; 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCmyData - ICC Profile Color Space Type Signature. 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCmyData = 1129142560; 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace2CLR - ICC Profile Color Space Type Signature. 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace2CLR = 843271250; 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace3CLR - ICC Profile Color Space Type Signature. 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace3CLR = 860048466; 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace4CLR - ICC Profile Color Space Type Signature. 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace4CLR = 876825682; 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace5CLR - ICC Profile Color Space Type Signature. 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace5CLR = 893602898; 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace6CLR - ICC Profile Color Space Type Signature. 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace6CLR = 910380114; 1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace7CLR - ICC Profile Color Space Type Signature. 1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace7CLR = 927157330; 1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace8CLR - ICC Profile Color Space Type Signature. 1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace8CLR = 943934546; 1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpace9CLR - ICC Profile Color Space Type Signature. 1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpace9CLR = 960711762; 1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceACLR - ICC Profile Color Space Type Signature. 1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceACLR = 1094929490; 1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceBCLR - ICC Profile Color Space Type Signature. 1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceBCLR = 1111706706; 2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceCCLR - ICC Profile Color Space Type Signature. 2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceCCLR = 1128483922; 2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceDCLR - ICC Profile Color Space Type Signature. 2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceDCLR = 1145261138; 2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceECLR - ICC Profile Color Space Type Signature. 2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceECLR = 1162038354; 2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigSpaceFCLR - ICC Profile Color Space Type Signature. 2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigSpaceFCLR = 1178815570; 2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigInputClass - ICC Profile Class Signature. 2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigInputClass = 1935896178; 2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigDisplayClass - ICC Profile Class Signature. 2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigDisplayClass = 1835955314; 2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigOutputClass - ICC Profile Class Signature. 2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigOutputClass = 1886549106; 2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigLinkClass - ICC Profile Class Signature. 2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigLinkClass = 1818848875; 2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigAbstractClass - ICC Profile Class Signature. 2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigAbstractClass = 1633842036; 2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigColorantOrderTag - ICC Profile Tag Signature. 2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigColorantOrderTag = 1668051567; 2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigColorantTableTag - ICC Profile Tag Signature. 2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigColorantTableTag = 1668051572; 2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigColorSpaceClass - ICC Profile Tag Signature. 2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigColorSpaceClass = 1936744803; 2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigNamedColorClass - ICC Profile Tag Signature. 2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigNamedColorClass = 1852662636; 2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icPerceptual - ICC Profile Rendering Intent. 2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icPerceptual = 0; 2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icRelativeColorimetric - ICC Profile Rendering Intent. 2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icRelativeColorimetric = 1; 2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSaturation - ICC Profile Rendering Intent. 2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSaturation = 2; 2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icAbsoluteColorimetric - ICC Profile Rendering Intent. 2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icAbsoluteColorimetric = 3; 2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigHead - ICC Profile Tag Signature. 2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigHead = 1751474532; 2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigAToB0Tag - ICC Profile Tag Signature. 2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigAToB0Tag = 1093812784; 2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigAToB1Tag - ICC Profile Tag Signature. 2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigAToB1Tag = 1093812785; 3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigAToB2Tag - ICC Profile Tag Signature. 3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigAToB2Tag = 1093812786; 3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBlueColorantTag - ICC Profile Tag Signature. 3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBlueColorantTag = 1649957210; 3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBlueMatrixColumnTag - ICC Profile Tag Signature. 3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBlueMatrixColumnTag = 1649957210; 3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBlueTRCTag - ICC Profile Tag Signature. 3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBlueTRCTag = 1649693251; 3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBToA0Tag - ICC Profile Tag Signature. 3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBToA0Tag = 1110589744; 3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBToA1Tag - ICC Profile Tag Signature. 3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBToA1Tag = 1110589745; 3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigBToA2Tag - ICC Profile Tag Signature. 3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigBToA2Tag = 1110589746; 3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCalibrationDateTimeTag - ICC Profile Tag Signature. 3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCalibrationDateTimeTag = 1667329140; 3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCharTargetTag - ICC Profile Tag Signature. 3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCharTargetTag = 1952543335; 3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCopyrightTag - ICC Profile Tag Signature. 3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCopyrightTag = 1668313716; 3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigCrdInfoTag - ICC Profile Tag Signature. 3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigCrdInfoTag = 1668441193; 3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigDeviceMfgDescTag - ICC Profile Tag Signature. 3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigDeviceMfgDescTag = 1684893284; 3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigDeviceModelDescTag - ICC Profile Tag Signature. 3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigDeviceModelDescTag = 1684890724; 3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigDeviceSettingsTag - ICC Profile Tag Signature. 3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigDeviceSettingsTag = 1684371059; 3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGamutTag - ICC Profile Tag Signature. 3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGamutTag = 1734438260; 3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGrayTRCTag - ICC Profile Tag Signature. 3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGrayTRCTag = 1800688195; 3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGreenColorantTag - ICC Profile Tag Signature. 3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGreenColorantTag = 1733843290; 3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGreenMatrixColumnTag - ICC Profile Tag Signature. 3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGreenMatrixColumnTag = 1733843290; 3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigGreenTRCTag - ICC Profile Tag Signature. 3949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 3959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigGreenTRCTag = 1733579331; 3969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 3979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 3989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigLuminanceTag - ICC Profile Tag Signature. 3999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigLuminanceTag = 1819635049; 4019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigMeasurementTag - ICC Profile Tag Signature. 4049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigMeasurementTag = 1835360627; 4069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigMediaBlackPointTag - ICC Profile Tag Signature. 4099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigMediaBlackPointTag = 1651208308; 4119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigMediaWhitePointTag - ICC Profile Tag Signature. 4149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigMediaWhitePointTag = 2004119668; 4169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigNamedColor2Tag - ICC Profile Tag Signature. 4199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigNamedColor2Tag = 1852009522; 4219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigOutputResponseTag - ICC Profile Tag Signature. 4249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigOutputResponseTag = 1919251312; 4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPreview0Tag - ICC Profile Tag Signature. 4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPreview0Tag = 1886545200; 4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPreview1Tag - ICC Profile Tag Signature. 4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPreview1Tag = 1886545201; 4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPreview2Tag - ICC Profile Tag Signature. 4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPreview2Tag = 1886545202; 4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigProfileDescriptionTag - ICC Profile Tag Signature. 4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigProfileDescriptionTag = 1684370275; 4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigProfileSequenceDescTag - ICC Profile Tag Signature. 4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigProfileSequenceDescTag = 1886610801; 4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2CRD0Tag - ICC Profile Tag Signature. 4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2CRD0Tag = 1886610480; 4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2CRD1Tag - ICC Profile Tag Signature. 4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2CRD1Tag = 1886610481; 4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2CRD2Tag - ICC Profile Tag Signature. 4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2CRD2Tag = 1886610482; 4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2CRD3Tag - ICC Profile Tag Signature. 4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2CRD3Tag = 1886610483; 4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2CSATag - ICC Profile Tag Signature. 4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2CSATag = 1886597747; 4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigPs2RenderingIntentTag - ICC Profile Tag Signature. 4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigPs2RenderingIntentTag = 1886597737; 4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigRedColorantTag - ICC Profile Tag Signature. 4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigRedColorantTag = 1918392666; 4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigRedMatrixColumnTag - ICC Profile Tag Signature. 4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigRedMatrixColumnTag = 1918392666; 4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigRedTRCTag - ICC Profile Tag Signature. 4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigRedTRCTag = 1918128707; 4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigScreeningDescTag - ICC Profile Tag Signature. 4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigScreeningDescTag = 1935897188; 5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigScreeningTag - ICC Profile Tag Signature. 5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigScreeningTag = 1935897198; 5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigTechnologyTag - ICC Profile Tag Signature. 5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigTechnologyTag = 1952801640; 5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigUcrBgTag - ICC Profile Tag Signature. 5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigUcrBgTag = 1650877472; 5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigViewingCondDescTag - ICC Profile Tag Signature. 5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigViewingCondDescTag = 1987405156; 5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigViewingConditionsTag - ICC Profile Tag Signature. 5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigViewingConditionsTag = 1986618743; 5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigChromaticAdaptationTag - ICC Profile Tag Signature. 5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigChromaticAdaptationTag = 1667785060; 5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icSigChromaticityTag - ICC Profile Tag Signature. 5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icSigChromaticityTag = 1667789421; 5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrSize - ICC Profile Header Location. 5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrSize = 0; 5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrCmmId - ICC Profile Header Location. 5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrCmmId = 4; 5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrVersion - ICC Profile Header Location. 5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrVersion = 8; 5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrDeviceClass - ICC Profile Header Location. 5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrDeviceClass = 12; 5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrColorSpace - ICC Profile Header Location. 5599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrColorSpace = 16; 5619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrPcs - ICC Profile Header Location. 5649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrPcs = 20; 5669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrDate - ICC Profile Header Location. 5699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrDate = 24; 5719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrMagic - ICC Profile Header Location. 5749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrMagic = 36; 5769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrPlatform - ICC Profile Header Location. 5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrPlatform = 40; 5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrProfileID - ICC Profile Header Location. 5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrProfileID = 84; 5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrFlags - ICC Profile Header Location. 5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrFlags = 44; 5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrManufacturer - ICC Profile Header Location. 5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrManufacturer = 48; 5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrModel - ICC Profile Header Location. 5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrModel = 52; 6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrAttributes - ICC Profile Header Location. 6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrAttributes = 56; 6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrRenderingIntent - ICC Profile Header Location. 6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrRenderingIntent = 64; 6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrIlluminant - ICC Profile Header Location. 6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrIlluminant = 68; 6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icHdrCreator - ICC Profile Header Location. 6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icHdrCreator = 80; 6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icICCAbsoluteColorimetric - ICC Profile Rendering Intent. 6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icICCAbsoluteColorimetric = 3; 6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icMediaRelativeColorimetric - ICC Profile Rendering Intent. 6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icMediaRelativeColorimetric = 1; 6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icTagType - ICC Profile Constant. 6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icTagType = 0; 6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icTagReserved - ICC Profile Constant. 6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icTagReserved = 4; 6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icCurveCount - ICC Profile Constant. 6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icCurveCount = 8; 6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icCurveData - ICC Profile Constant. 6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icCurveData = 12; 6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The Constant icXYZNumberX - ICC Profile Constant. 6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static final int icXYZNumberX = 8; 6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Size of a profile header. 6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int headerSize = 128; 6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * header magic number. 6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int headerMagicNumber = 0x61637370; 6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Cache of predefined profiles 6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The s rgb profile. 6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static ICC_Profile sRGBProfile; 6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The xyz profile. 6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static ICC_Profile xyzProfile; 6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The gray profile. 6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static ICC_Profile grayProfile; 6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The pycc profile. 6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static ICC_Profile pyccProfile; 6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The linear rgb profile. 6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static ICC_Profile linearRGBProfile; 6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Handle to the current profile. 6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private transient long profileHandle = 0; 6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If handle is used by another class this object is not responsible for 7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * closing profile. 7019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private transient boolean handleStolen = false; 7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Cached header data. 7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private transient byte[] headerData = null; 7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Serialization support. 7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private transient ICC_Profile openedProfileObject; 7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Instantiates a new ICC profile with the given data. 7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param data 7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the data. 7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private ICC_Profile(byte[] data) { 7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project profileHandle = NativeCMM.cmmOpenProfile(data); 7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.addHandle(this, profileHandle); 7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Used to instantiate dummy ICC_ProfileStub objects. 7279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ICC_Profile() { 7299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Used to instantiate subclasses (ICC_ProfileGrey and ICC_ProfileRGB). 7339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param profileHandle 7359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * - should be valid handle to opened color profile 7369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ICC_Profile(long profileHandle) { 7389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project this.profileHandle = profileHandle; 7399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // A new object reference, need to add it. 7409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.addHandle(this, profileHandle); 7419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Writes the ICC_Profile to a file with the specified name. 7459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param fileName 7479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the file name. 7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if an I/O exception has occurred during writing or opening 7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the file. 7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void write(String fileName) throws IOException { 7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FileOutputStream oStream = new FileOutputStream(fileName); 7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project oStream.write(getData()); 7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project oStream.close(); 7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Serializable implementation. 7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s 7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the s 7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Signals that an I/O exception has occurred. 7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void writeObject(ObjectOutputStream s) throws IOException { 7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s.defaultWriteObject(); 7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s.writeObject(null); 7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s.writeObject(getData()); 7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Serializable implementation. 7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s 7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the s 7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Signals that an I/O exception has occurred. 7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws ClassNotFoundException 7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the class not found exception 7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private void readObject(ObjectInputStream s) throws IOException, ClassNotFoundException { 7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s.defaultReadObject(); 7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String colorSpaceStr = (String)s.readObject(); 7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] data = (byte[])s.readObject(); 7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (colorSpaceStr != null) { 7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (colorSpaceStr.equals("CS_sRGB")) { //$NON-NLS-1$ 7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = getInstance(ColorSpace.CS_sRGB); 7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (colorSpaceStr.equals("CS_GRAY")) { //$NON-NLS-1$ 7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = getInstance(ColorSpace.CS_GRAY); 7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (colorSpaceStr.equals("CS_LINEAR_RGB")) { //$NON-NLS-1$ 7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = getInstance(ColorSpace.CS_LINEAR_RGB); 7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (colorSpaceStr.equals("CS_CIEXYZ")) { //$NON-NLS-1$ 7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = getInstance(ColorSpace.CS_CIEXYZ); 7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (colorSpaceStr.equals("CS_PYCC")) { //$NON-NLS-1$ 7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = getInstance(ColorSpace.CS_PYCC); 7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = ICC_Profile.getInstance(data); 8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else { 8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project openedProfileObject = ICC_Profile.getInstance(data); 8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Resolves instances being deserialized into instances registered with CMM. 8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return ICC_Profile object for profile registered with CMM. 8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws ObjectStreamException 8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if there is an error in the serialized files or during the 8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * process of reading them. 8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected Object readResolve() throws ObjectStreamException { 8159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return openedProfileObject; 8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Writes the ICC_Profile to an OutputStream. 8209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s 8229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the OutputStream. 8239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 8249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * signals that an I/O exception has occurred during writing or 8259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * opening OutputStream. 8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void write(OutputStream s) throws IOException { 8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project s.write(getData()); 8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sets a tagged data element in the profile from a byte array. 8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the ICC tag signature for the data element to be set. 8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagData 8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the data to be set for the specified tag signature. 8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setData(int tagSignature, byte[] tagData) { 8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.cmmSetProfileElement(profileHandle, tagSignature, tagData); 8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Remove cached header data if header is modified 8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (tagSignature == icSigHead) { 8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project headerData = null; 8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a tagged data element from the profile as a byte array. Elements are 8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * identified by tag signatures as defined in the ICC specification. 8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the ICC tag signature for the data element to get. 8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte array that contains the tagged data element. 8549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getData(int tagSignature) { 8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int tagSize = 0; 8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project tagSize = NativeCMM.cmmGetProfileElementSize(profileHandle, tagSignature); 8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (CMMException e) { 8609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // We'll get this exception if there's no element with 8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // the specified tag signature 8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] data = new byte[tagSize]; 8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.cmmGetProfileElement(profileHandle, tagSignature, data); 8679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return data; 8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets a data byte array of this ICC_Profile. 8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return a byte array that contains the ICC Profile data. 8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public byte[] getData() { 8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int profileSize = NativeCMM.cmmGetProfileSize(profileHandle); 8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] data = new byte[profileSize]; 8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.cmmGetProfile(profileHandle, data); 8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return data; 8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Frees the resources associated with an ICC_Profile object. 8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project protected void finalize() { 8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (profileHandle != 0 && !handleStolen) { 8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.cmmCloseProfile(profileHandle); 8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Always remove because key no more exist 8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // when object is destroyed 8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project NativeCMM.removeHandle(this); 8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the profile class. 8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the profile class constant. 9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getProfileClass() { 9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int deviceClassSignature = getIntFromHeader(icHdrDeviceClass); 9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (deviceClassSignature) { 9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigColorSpaceClass: 9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_COLORSPACECONVERSION; 9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigDisplayClass: 9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_DISPLAY; 9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigOutputClass: 9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_OUTPUT; 9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigInputClass: 9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_INPUT; 9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigLinkClass: 9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_DEVICELINK; 9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigAbstractClass: 9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_ABSTRACT; 9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigNamedColorClass: 9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return CLASS_NAMEDCOLOR; 9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project default: 9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Not an ICC profile class 9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.15F=Profile class does not comply with ICC specification 9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("awt.15F")); //$NON-NLS-1$ 9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the color space type of the Profile Connection Space (PCS). 9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the PCS type. 9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getPCSType() { 9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return csFromSignature(getIntFromHeader(icHdrPcs)); 9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the number of components of this ICC Profile. 9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the number of components of this ICC Profile. 9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getNumComponents() { 9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (getIntFromHeader(icHdrColorSpace)) { 9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // The most common cases go first to increase speed 9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigRgbData: 9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigXYZData: 9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigLabData: 9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 3; 9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigCmykData: 9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 4; 9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Then all other 9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigGrayData: 9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 1; 9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace2CLR: 9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 2; 9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigYCbCrData: 9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigLuvData: 9589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigYxyData: 9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigHlsData: 9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigHsvData: 9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigCmyData: 9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace3CLR: 9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 3; 9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace4CLR: 9659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 4; 9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace5CLR: 9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 5; 9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace6CLR: 9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 6; 9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace7CLR: 9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 7; 9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace8CLR: 9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 8; 9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace9CLR: 9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 9; 9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceACLR: 9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 10; 9789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceBCLR: 9799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 11; 9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceCCLR: 9819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 12; 9829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceDCLR: 9839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 13; 9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceECLR: 9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 14; 9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceFCLR: 9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 15; 9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project default: 9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.160=Color space doesn't comply with ICC specification 9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new ProfileDataException(Messages.getString("awt.160") //$NON-NLS-1$ 9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ); 9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the minor version of this ICC profile. 9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the minor version of this ICC profile. 10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getMinorVersion() { 10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getByteFromHeader(icHdrVersion + 1); 10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the major version of this ICC profile. 10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the major version of this ICC profile. 10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getMajorVersion() { 10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getByteFromHeader(icHdrVersion); 10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the color space type of this ICC_Profile. 10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the color space type. 10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int getColorSpaceType() { 10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return csFromSignature(getIntFromHeader(icHdrColorSpace)); 10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Tries to open the file at the specified path. Path entries can be divided 10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * by a separator character. 10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param path 10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the path to the file. 10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param fileName 10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the file name. 10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the input stream to read the file. 10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static FileInputStream tryPath(String path, String fileName) { 10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FileInputStream fiStream = null; 10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (path == null) { 10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return null; 10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project StringTokenizer st = new StringTokenizer(path, File.pathSeparator); 10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project while (st.hasMoreTokens()) { 10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String pathEntry = st.nextToken(); 10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream = new FileInputStream(pathEntry + File.separatorChar + fileName); 10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (fiStream != null) { 10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (FileNotFoundException e) { 10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the single instance of ICC_Profile from data in the specified file. 10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param fileName 10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the specified name of file with ICC profile data. 10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return single instance of ICC_Profile. 10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * signals that an I/O error occurred while reading the file or 10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the file does not exist. 10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ICC_Profile getInstance(String fileName) throws IOException { 10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project final String fName = fileName; // to use in the privileged block 10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FileInputStream fiStream = (FileInputStream)AccessController 10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project .doPrivileged(new PrivilegedAction<FileInputStream>() { 10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public FileInputStream run() { 10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project FileInputStream fiStream = null; 10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Open absolute path 10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream = new FileInputStream(fName); 10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (fiStream != null) { 10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (FileNotFoundException e) { 10819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Check java.iccprofile.path entries 10849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream = tryPath(System.getProperty("java.iccprofile.path"), fName); //$NON-NLS-1$ 10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (fiStream != null) { 10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Check java.class.path entries 10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream = tryPath(System.getProperty("java.class.path"), fName); //$NON-NLS-1$ 10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (fiStream != null) { 10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Check directory with java sample profiles 10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String home = System.getProperty("java.home"); //$NON-NLS-1$ 10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (home != null) { 10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream = tryPath(home + File.separatorChar 10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project + "lib" + File.separatorChar + "cmm", fName //$NON-NLS-1$ //$NON-NLS-2$ 11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ); 11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return fiStream; 11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }); 11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (fiStream == null) { 11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.161=Unable to open file {0} 11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IOException(Messages.getString("awt.161", fileName)); //$NON-NLS-1$ 11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ICC_Profile pf = getInstance(fiStream); 11139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project fiStream.close(); 11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return pf; 11159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the single instance of ICC_Profile with data in the specified 11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * InputStream. 11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param s 11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the InputStream with ICC profile data. 11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return single instance of ICC_Profile. 11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IOException 11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if an I/O exception has occurred during reading from 11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * InputStream. 11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException 11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if the file does not contain valid ICC Profile data. 11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ICC_Profile getInstance(InputStream s) throws IOException { 11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] header = new byte[headerSize]; 11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.162=Invalid ICC Profile Data 11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String invalidDataMessage = Messages.getString("awt.162"); //$NON-NLS-1$ 11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Get header from the input stream 11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (s.read(header) != headerSize) { 11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(invalidDataMessage); 11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Check the profile data for consistency 11419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (ICC_ProfileHelper.getBigEndianFromByteArray(header, icHdrMagic) != headerMagicNumber) { 11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(invalidDataMessage); 11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Get profile size from header, create an array for profile data 11469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int profileSize = ICC_ProfileHelper.getBigEndianFromByteArray(header, icHdrSize); 11479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] profileData = new byte[profileSize]; 11489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Copy header into it 11509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project System.arraycopy(header, 0, profileData, 0, headerSize); 11519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Read the profile itself 11539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (s.read(profileData, headerSize, profileSize - headerSize) != profileSize - headerSize) { 11549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(invalidDataMessage); 11559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getInstance(profileData); 11589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 11619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the single instance of ICC_Profile from the specified data in a byte 11629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * array. 11639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 11649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param data 11659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the byte array of ICC profile. 11669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return single instance of ICC_Profile from the specified data in a byte 11679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * array. 11689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException 11699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * if the file does not contain valid ICC Profile data. 11709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 11719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ICC_Profile getInstance(byte[] data) { 11729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project ICC_Profile res = null; 11739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 11759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res = new ICC_Profile(data); 11769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (CMMException e) { 11779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.162=Invalid ICC Profile Data 11789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("awt.162")); //$NON-NLS-1$ 11799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (System.getProperty("os.name").toLowerCase().indexOf("windows") >= 0) { //$NON-NLS-1$ //$NON-NLS-2$ 11829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 11839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (res.getColorSpaceType() == ColorSpace.TYPE_RGB 11849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigMediaWhitePointTag) > 0 11859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigRedColorantTag) > 0 11869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigGreenColorantTag) > 0 11879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigBlueColorantTag) > 0 11889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigRedTRCTag) > 0 11899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigGreenTRCTag) > 0 11909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigBlueTRCTag) > 0) { 11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res = new ICC_ProfileRGB(res.getProfileHandle()); 11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } else if (res.getColorSpaceType() == ColorSpace.TYPE_GRAY 11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigMediaWhitePointTag) > 0 11949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project && res.getDataSize(icSigGrayTRCTag) > 0) { 11959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res = new ICC_ProfileGray(res.getProfileHandle()); 11969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 11979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 11989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (CMMException e) { /* return res in this case */ 11999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 12039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the single instance of ICC_Profile with the specific color space 12079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * defined by the ColorSpace class: CS_sRGB, CS_LINEAR_RGB, CS_CIEXYZ, 12089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * CS_PYCC, CS_GRAY. 12099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param cspace 12119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the type of color space defined in the ColorSpace class. 12129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return single instance of ICC_Profile. 12139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @throws IllegalArgumentException 12149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * is not one of the defined color space types. 12159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static ICC_Profile getInstance(int cspace) { 12179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project try { 12189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (cspace) { 12199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ColorSpace.CS_sRGB: 12219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (sRGBProfile == null) { 12229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sRGBProfile = getInstance("sRGB.pf"); //$NON-NLS-1$ 12239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return sRGBProfile; 12259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ColorSpace.CS_CIEXYZ: 12279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (xyzProfile == null) { 12289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project xyzProfile = getInstance("CIEXYZ.pf"); //$NON-NLS-1$ 12299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return xyzProfile; 12319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ColorSpace.CS_GRAY: 12339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (grayProfile == null) { 12349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project grayProfile = getInstance("GRAY.pf"); //$NON-NLS-1$ 12359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return grayProfile; 12379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ColorSpace.CS_PYCC: 12399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (pyccProfile == null) { 12409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project pyccProfile = getInstance("PYCC.pf"); //$NON-NLS-1$ 12419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return pyccProfile; 12439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case ColorSpace.CS_LINEAR_RGB: 12459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (linearRGBProfile == null) { 12469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project linearRGBProfile = getInstance("LINEAR_RGB.pf"); //$NON-NLS-1$ 12479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return linearRGBProfile; 12499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } catch (IOException e) { 12529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.163=Can't open color profile 12539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("Can't open color profile")); //$NON-NLS-1$ 12549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.164=Not a predefined color space 12579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("Not a predefined color space")); //$NON-NLS-1$ 12589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads an integer from the profile header at the specified position. 12629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param idx 12649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * - offset in bytes from the beginning of the header 12659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the integer value from header 12669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int getIntFromHeader(int idx) { 12689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (headerData == null) { 12699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project headerData = getData(icSigHead); 12709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ((headerData[idx] & 0xFF) << 24) | ((headerData[idx + 1] & 0xFF) << 16) 12739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project | ((headerData[idx + 2] & 0xFF) << 8) | ((headerData[idx + 3] & 0xFF)); 12749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads byte from the profile header at the specified position. 12789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param idx 12809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * - offset in bytes from the beginning of the header 12819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the byte from header 12829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private byte getByteFromHeader(int idx) { 12849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (headerData == null) { 12859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project headerData = getData(icSigHead); 12869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return headerData[idx]; 12899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 12909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 12919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 12929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Converts ICC color space signature to the java predefined color space 12939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * type. 12949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 12959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param signature 12969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the signature 12979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the int 12989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 12999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int csFromSignature(int signature) { 13009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project switch (signature) { 13019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigRgbData: 13029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_RGB; 13039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigXYZData: 13049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_XYZ; 13059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigCmykData: 13069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_CMYK; 13079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigLabData: 13089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_Lab; 13099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigGrayData: 13109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_GRAY; 13119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigHlsData: 13129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_HLS; 13139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigLuvData: 13149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_Luv; 13159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigYCbCrData: 13169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_YCbCr; 13179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigYxyData: 13189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_Yxy; 13199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigHsvData: 13209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_HSV; 13219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigCmyData: 13229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_CMY; 13239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace2CLR: 13249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_2CLR; 13259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace3CLR: 13269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_3CLR; 13279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace4CLR: 13289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_4CLR; 13299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace5CLR: 13309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_5CLR; 13319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace6CLR: 13329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_6CLR; 13339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace7CLR: 13349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_7CLR; 13359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace8CLR: 13369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_8CLR; 13379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpace9CLR: 13389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_9CLR; 13399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceACLR: 13409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_ACLR; 13419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceBCLR: 13429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_BCLR; 13439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceCCLR: 13449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_CCLR; 13459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceDCLR: 13469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_DCLR; 13479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceECLR: 13489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_ECLR; 13499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project case icSigSpaceFCLR: 13509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ColorSpace.TYPE_FCLR; 13519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project default: 13529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.165=Color space doesn't comply with ICC specification 13559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new IllegalArgumentException(Messages.getString("awt.165")); //$NON-NLS-1$ 13569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the profile handle. 13609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the profile handle 13629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private long getProfileHandle() { 13649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project handleStolen = true; 13659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return profileHandle; 13669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the data size. 13709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 13729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the tag signature 13739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the data size 13749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private int getDataSize(int tagSignature) { 13769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return NativeCMM.cmmGetProfileElementSize(profileHandle, tagSignature); 13779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 13809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Reads XYZ value from the tag data. 13819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 13829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 13839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the tag signature 13849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the XYZ value 13859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 13869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float[] getXYZValue(int tagSignature) { 13879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float[] res = new float[3]; 13889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] data = getData(tagSignature); 13899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Convert from ICC s15Fixed16Number type 13919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // 1 (float) = 0x10000 (s15Fixed16Number), 13929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // hence dividing by 0x10000 13939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res[0] = ICC_ProfileHelper.getIntFromByteArray(data, 0) / 65536.f; 13949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res[1] = ICC_ProfileHelper.getIntFromByteArray(data, 4) / 65536.f; 13959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project res[2] = ICC_ProfileHelper.getIntFromByteArray(data, 8) / 65536.f; 13969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 13979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return res; 13989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 13999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the media white point. 14029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the media white point. 14049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float[] getMediaWhitePoint() { 14069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return getXYZValue(icSigMediaWhitePointTag); 14079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * If TRC is not a table returns gamma via return value and sets dataTRC to 14119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * null. If TRC is a table returns 0 and fills dataTRC with values. 14129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 14149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the tag signature 14159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param dataTRC 14169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the data trc 14179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return - gamma or zero if TRC is a table 14189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private float getGammaOrTRC(int tagSignature, short[] dataTRC) { 14209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project byte[] data = getData(tagSignature); 14219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int trcSize = ICC_ProfileHelper.getIntFromByteArray(data, icCurveCount); 14229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dataTRC = null; 14249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (trcSize == 0) { 14269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 1.0f; 14279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (trcSize == 1) { 14309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Cast from ICC u8Fixed8Number to float 14319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return ICC_ProfileHelper.getShortFromByteArray(data, icCurveData) / 256.f; 14329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TRC is a table 14359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dataTRC = new short[trcSize]; 14369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = 0, pos = icCurveData; i < trcSize; i++, pos += 2) { 14379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dataTRC[i] = ICC_ProfileHelper.getShortFromByteArray(data, pos); 14389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 14409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the gamma. 14449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 14469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the tag signature 14479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the gamma 14489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getGamma(int tagSignature) { 14509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short[] dataTRC = null; 14519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float gamma = getGammaOrTRC(tagSignature, dataTRC); 14529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (dataTRC == null) { 14549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return gamma; 14559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.166=TRC is not a simple gamma value. 14579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new ProfileDataException(Messages.getString("awt.166")); //$NON-NLS-1$ 14589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 14619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Gets the TRC. 14629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 14639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param tagSignature 14649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the tag signature 14659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @return the tRC 14669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 14679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short[] getTRC(int tagSignature) { 14689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project short[] dataTRC = null; 14699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project getGammaOrTRC(tagSignature, dataTRC); 14709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 14719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project if (dataTRC == null) { 14729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // awt.167=TRC is a gamma value, not a table. 14739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project throw new ProfileDataException(Messages.getString("awt.167")); //$NON-NLS-1$ 14749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return dataTRC; 14769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 14779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 1478