📄 icc_profile.java
字号:
/* * @(#)ICC_Profile.java 1.28 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. *//********************************************************************** ********************************************************************** ********************************************************************** *** COPYRIGHT (c) Eastman Kodak Company, 1997 *** *** As an unpublished work pursuant to Title 17 of the United *** *** States Code. All rights reserved. *** ********************************************************************** ********************************************************************** **********************************************************************/package java.awt.color;import sun.awt.color.CMM;import sun.awt.color.ProfileDeferralMgr;import sun.awt.color.ProfileDeferralInfo;import sun.awt.color.ProfileActivator;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.ObjectStreamException;import java.io.OutputStream;import java.io.Serializable;import java.util.StringTokenizer;/** * A representation of color profile data for device independent and * device dependent color spaces based on the International Color * Consortium Specification ICC.1:1998-09, File Format for Color Profiles, * September 1998, and the addendum ICC.1A:1999-04, April 1999, to that * specification (see <A href="http://www.color.org"> http://www.color.org</A>). * <p> * An ICC_ColorSpace object can be constructed from an appropriate * ICC_Profile. * Typically, an ICC_ColorSpace would be associated with an ICC * Profile which is either an input, display, or output profile (see * the ICC specification). There are also device link, abstract, * color space conversion, and named color profiles. These are less * useful for tagging a color or image, but are useful for other * purposes (in particular device link profiles can provide improved * performance for converting from one device's color space to * another's). * <p> * ICC Profiles represent transformations from the color space of * the profile (e.g. a monitor) to a Profile Connection Space (PCS). * Profiles of interest for tagging images or colors have a PCS * which is one of the two specific device independent * spaces (one CIEXYZ space and one CIELab space) defined in the * ICC Profile Format Specification. Most profiles of interest * either have invertible transformations or explicitly specify * transformations going both directions. * <p> * @version 10 Feb 1997 * @see ICC_ColorSpace */public class ICC_Profile implements Serializable { transient long ID; private transient ProfileDeferralInfo deferralInfo; private transient ProfileActivator profileActivator; // Registry of singleton profile objects for specific color spaces // defined in the ColorSpace class (e.g. CS_sRGB), see // getInstance(int cspace) factory method. private static ICC_Profile sRGBprofile; private static ICC_Profile XYZprofile; private static ICC_Profile PYCCprofile; private static ICC_Profile GRAYprofile; private static ICC_Profile LINEAR_RGBprofile; /** * Profile class is input. */ public static final int CLASS_INPUT = 0; /** * Profile class is display. */ public static final int CLASS_DISPLAY = 1; /** * Profile class is output. */ public static final int CLASS_OUTPUT = 2; /** * Profile class is device link. */ public static final int CLASS_DEVICELINK = 3; /** * Profile class is color space conversion. */ public static final int CLASS_COLORSPACECONVERSION = 4; /** * Profile class is abstract. */ public static final int CLASS_ABSTRACT = 5; /** * Profile class is named color. */ public static final int CLASS_NAMEDCOLOR = 6; /** * ICC Profile Color Space Type Signature: 'XYZ '. */ public static final int icSigXYZData = 0x58595A20; /* 'XYZ ' */ /** * ICC Profile Color Space Type Signature: 'Lab '. */ public static final int icSigLabData = 0x4C616220; /* 'Lab ' */ /** * ICC Profile Color Space Type Signature: 'Luv '. */ public static final int icSigLuvData = 0x4C757620; /* 'Luv ' */ /** * ICC Profile Color Space Type Signature: 'YCbr'. */ public static final int icSigYCbCrData = 0x59436272; /* 'YCbr' */ /** * ICC Profile Color Space Type Signature: 'Yxy '. */ public static final int icSigYxyData = 0x59787920; /* 'Yxy ' */ /** * ICC Profile Color Space Type Signature: 'RGB '. */ public static final int icSigRgbData = 0x52474220; /* 'RGB ' */ /** * ICC Profile Color Space Type Signature: 'GRAY'. */ public static final int icSigGrayData = 0x47524159; /* 'GRAY' */ /** * ICC Profile Color Space Type Signature: 'HSV'. */ public static final int icSigHsvData = 0x48535620; /* 'HSV ' */ /** * ICC Profile Color Space Type Signature: 'HLS'. */ public static final int icSigHlsData = 0x484C5320; /* 'HLS ' */ /** * ICC Profile Color Space Type Signature: 'CMYK'. */ public static final int icSigCmykData = 0x434D594B; /* 'CMYK' */ /** * ICC Profile Color Space Type Signature: 'CMY '. */ public static final int icSigCmyData = 0x434D5920; /* 'CMY ' */ /** * ICC Profile Color Space Type Signature: '2CLR'. */ public static final int icSigSpace2CLR = 0x32434C52; /* '2CLR' */ /** * ICC Profile Color Space Type Signature: '3CLR'. */ public static final int icSigSpace3CLR = 0x33434C52; /* '3CLR' */ /** * ICC Profile Color Space Type Signature: '4CLR'. */ public static final int icSigSpace4CLR = 0x34434C52; /* '4CLR' */ /** * ICC Profile Color Space Type Signature: '5CLR'. */ public static final int icSigSpace5CLR = 0x35434C52; /* '5CLR' */ /** * ICC Profile Color Space Type Signature: '6CLR'. */ public static final int icSigSpace6CLR = 0x36434C52; /* '6CLR' */ /** * ICC Profile Color Space Type Signature: '7CLR'. */ public static final int icSigSpace7CLR = 0x37434C52; /* '7CLR' */ /** * ICC Profile Color Space Type Signature: '8CLR'. */ public static final int icSigSpace8CLR = 0x38434C52; /* '8CLR' */ /** * ICC Profile Color Space Type Signature: '9CLR'. */ public static final int icSigSpace9CLR = 0x39434C52; /* '9CLR' */ /** * ICC Profile Color Space Type Signature: 'ACLR'. */ public static final int icSigSpaceACLR = 0x41434C52; /* 'ACLR' */ /** * ICC Profile Color Space Type Signature: 'BCLR'. */ public static final int icSigSpaceBCLR = 0x42434C52; /* 'BCLR' */ /** * ICC Profile Color Space Type Signature: 'CCLR'. */ public static final int icSigSpaceCCLR = 0x43434C52; /* 'CCLR' */ /** * ICC Profile Color Space Type Signature: 'DCLR'. */ public static final int icSigSpaceDCLR = 0x44434C52; /* 'DCLR' */ /** * ICC Profile Color Space Type Signature: 'ECLR'. */ public static final int icSigSpaceECLR = 0x45434C52; /* 'ECLR' */ /** * ICC Profile Color Space Type Signature: 'FCLR'. */ public static final int icSigSpaceFCLR = 0x46434C52; /* 'FCLR' */ /** * ICC Profile Class Signature: 'scnr'. */ public static final int icSigInputClass = 0x73636E72; /* 'scnr' */ /** * ICC Profile Class Signature: 'mntr'. */ public static final int icSigDisplayClass = 0x6D6E7472; /* 'mntr' */ /** * ICC Profile Class Signature: 'prtr'. */ public static final int icSigOutputClass = 0x70727472; /* 'prtr' */ /** * ICC Profile Class Signature: 'link'. */ public static final int icSigLinkClass = 0x6C696E6B; /* 'link' */ /** * ICC Profile Class Signature: 'abst'. */ public static final int icSigAbstractClass = 0x61627374; /* 'abst' */ /** * ICC Profile Class Signature: 'spac'. */ public static final int icSigColorSpaceClass = 0x73706163; /* 'spac' */ /** * ICC Profile Class Signature: 'nmcl'. */ public static final int icSigNamedColorClass = 0x6e6d636c; /* 'nmcl' */ /** * ICC Profile Rendering Intent: Perceptual. */ public static final int icPerceptual = 0; /** * ICC Profile Rendering Intent: RelativeColorimetric. */ public static final int icRelativeColorimetric = 1; /** * ICC Profile Rendering Intent: Saturation. */ public static final int icSaturation = 2; /** * ICC Profile Rendering Intent: AbsoluteColorimetric. */ public static final int icAbsoluteColorimetric = 3; /** * ICC Profile Tag Signature: 'head' - special. */ public static final int icSigHead = 0x68656164; /* 'head' - special */ /** * ICC Profile Tag Signature: 'A2B0'. */ public static final int icSigAToB0Tag = 0x41324230; /* 'A2B0' */ /** * ICC Profile Tag Signature: 'A2B1'. */ public static final int icSigAToB1Tag = 0x41324231; /* 'A2B1' */ /** * ICC Profile Tag Signature: 'A2B2'. */ public static final int icSigAToB2Tag = 0x41324232; /* 'A2B2' */ /** * ICC Profile Tag Signature: 'bXYZ'. */ public static final int icSigBlueColorantTag = 0x6258595A; /* 'bXYZ' */ /** * ICC Profile Tag Signature: 'bTRC'. */ public static final int icSigBlueTRCTag = 0x62545243; /* 'bTRC' */ /** * ICC Profile Tag Signature: 'B2A0'. */ public static final int icSigBToA0Tag = 0x42324130; /* 'B2A0' */ /** * ICC Profile Tag Signature: 'B2A1'. */ public static final int icSigBToA1Tag = 0x42324131; /* 'B2A1' */ /** * ICC Profile Tag Signature: 'B2A2'. */ public static final int icSigBToA2Tag = 0x42324132; /* 'B2A2' */ /** * ICC Profile Tag Signature: 'calt'. */ public static final int icSigCalibrationDateTimeTag = 0x63616C74; /* 'calt' */ /** * ICC Profile Tag Signature: 'targ'. */ public static final int icSigCharTargetTag = 0x74617267; /* 'targ' */ /** * ICC Profile Tag Signature: 'cprt'. */ public static final int icSigCopyrightTag = 0x63707274; /* 'cprt' */ /** * ICC Profile Tag Signature: 'crdi'. */ public static final int icSigCrdInfoTag = 0x63726469; /* 'crdi' */ /** * ICC Profile Tag Signature: 'dmnd'. */ public static final int icSigDeviceMfgDescTag = 0x646D6E64; /* 'dmnd' */ /** * ICC Profile Tag Signature: 'dmdd'. */ public static final int icSigDeviceModelDescTag = 0x646D6464; /* 'dmdd' */ /** * ICC Profile Tag Signature: 'devs'. */ public static final int icSigDeviceSettingsTag = 0x64657673; /* 'devs' */ /** * ICC Profile Tag Signature: 'gamt'. */ public static final int icSigGamutTag = 0x67616D74; /* 'gamt' */ /** * ICC Profile Tag Signature: 'kTRC'. */ public static final int icSigGrayTRCTag = 0x6b545243; /* 'kTRC' */ /** * ICC Profile Tag Signature: 'gXYZ'. */ public static final int icSigGreenColorantTag = 0x6758595A; /* 'gXYZ' */ /** * ICC Profile Tag Signature: 'gTRC'. */ public static final int icSigGreenTRCTag = 0x67545243; /* 'gTRC' */ /** * ICC Profile Tag Signature: 'lumi'. */ public static final int icSigLuminanceTag = 0x6C756d69; /* 'lumi' */ /** * ICC Profile Tag Signature: 'meas'. */ public static final int icSigMeasurementTag = 0x6D656173; /* 'meas' */ /** * ICC Profile Tag Signature: 'bkpt'. */ public static final int icSigMediaBlackPointTag = 0x626B7074; /* 'bkpt' */ /** * ICC Profile Tag Signature: 'wtpt'. */ public static final int icSigMediaWhitePointTag = 0x77747074; /* 'wtpt' */ /** * ICC Profile Tag Signature: 'ncl2'. */ public static final int icSigNamedColor2Tag = 0x6E636C32; /* 'ncl2' */ /** * ICC Profile Tag Signature: 'resp'. */ public static final int icSigOutputResponseTag = 0x72657370; /* 'resp' */ /** * ICC Profile Tag Signature: 'pre0'. */ public static final int icSigPreview0Tag = 0x70726530; /* 'pre0' */ /** * ICC Profile Tag Signature: 'pre1'. */ public static final int icSigPreview1Tag = 0x70726531; /* 'pre1' */ /** * ICC Profile Tag Signature: 'pre2'. */ public static final int icSigPreview2Tag = 0x70726532; /* 'pre2' */ /** * ICC Profile Tag Signature: 'desc'. */ public static final int icSigProfileDescriptionTag = 0x64657363; /* 'desc' */ /** * ICC Profile Tag Signature: 'pseq'. */ public static final int icSigProfileSequenceDescTag = 0x70736571; /* 'pseq' */ /** * ICC Profile Tag Signature: 'psd0'. */ public static final int icSigPs2CRD0Tag = 0x70736430; /* 'psd0' */ /** * ICC Profile Tag Signature: 'psd1'.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -