亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? iccprofile.java

?? jpeg2000編解碼
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************** * * $Id: ICCProfile.java,v 1.1.1.1 2002/08/02 09:47:03 grosbois Exp $ * * Copyright Eastman Kodak Company, 343 State Street, Rochester, NY 14650 * $Date $ *****************************************************************************/package icc;import java.io.File;import java.io.RandomAccessFile;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.FileInputStream;import java.io.InputStream;import java.io.IOException;import java.util.Calendar;import java.util.GregorianCalendar;import jj2000.j2k.util.ParameterList;import jj2000.j2k.decoder.DecoderSpecs;import jj2000.j2k.codestream.reader.BitstreamReaderAgent;import colorspace .ColorSpace;import colorspace .ColorSpaceException;import icc .types.ICCProfileHeader;import icc .tags.ICCTag;import icc .tags.ICCTagTable;import icc .tags.ICCCurveType;import icc .tags.ICCXYZType;import icc .types.XYZNumber;import icc .types.ICCProfileVersion;import icc .types.ICCDateTime;import jj2000.j2k.fileformat.FileFormatBoxes;import jj2000.j2k.io.RandomAccessIO;import jj2000.j2k.util.FacilityManager;import jj2000.j2k.util.MsgLogger;import jj2000.j2k.fileformat.FileFormatBoxes;/** *  This class models the ICCProfile file.  This file is a binary file which is divided  *  into two parts, an ICCProfileHeader followed by an ICCTagTable. The header is a  *  straightforward list of descriptive parameters such as profile size, version, date and various *  more esoteric parameters.  The tag table is a structured list of more complexly aggragated data *  describing things such as ICC curves, copyright information, descriptive text blocks, etc. * *  Classes exist to model the header and tag table and their various constituent parts the developer *  is refered to these for further information on the structure and contents of the header and tag table. *  * @see		jj2000.j2k.icc.types.ICCProfileHeader * @see		jj2000.j2k.icc.tags.ICCTagTable * @version	1.0 * @author	Bruce A. Kern */public abstract class ICCProfile {            private static final String eol = System.getProperty("line.separator");    // Renamed for convenience:    /** Gray index. */ public static final int GRAY  = 0;    /** RGB index.  */ public static final int RED   = 0;    /** RGB index.  */ public static final int GREEN = 1;    /** RGB index.  */ public static final int BLUE  = 2;    /** Size of native type */ public final static int boolean_size = 1;    /** Size of native type */ public final static int byte_size = 1;    /** Size of native type */ public final static int char_size = 2;    /** Size of native type */ public final static int short_size = 2;    /** Size of native type */ public final static int int_size = 4;    /** Size of native type */ public final static int float_size = 4;    /** Size of native type */ public final static int long_size = 8;    /** Size of native type */ public final static int double_size = 8;    /* Bit twiddling constant for integral types. */ public final static int BITS_PER_BYTE  = 8;    /* Bit twiddling constant for integral types. */ public final static int BITS_PER_SHORT = 16;    /* Bit twiddling constant for integral types. */ public final static int BITS_PER_INT   = 32;    /* Bit twiddling constant for integral types. */ public final static int BITS_PER_LONG  = 64;    /* Bit twiddling constant for integral types. */ public final static int BYTES_PER_SHORT  = 2;    /* Bit twiddling constant for integral types. */ public final static int BYTES_PER_INT  = 4;    /* Bit twiddling constant for integral types. */ public final static int BYTES_PER_LONG  = 8;    /* JP2 Box structure analysis help */    private static class BoxType extends java.util.Hashtable {        private static java.util.Hashtable map = new java.util.Hashtable();        static {            put (FileFormatBoxes.BITS_PER_COMPONENT_BOX,"BITS_PER_COMPONENT_BOX");            put (FileFormatBoxes.CAPTURE_RESOLUTION_BOX,"CAPTURE_RESOLUTION_BOX");            put (FileFormatBoxes.CHANNEL_DEFINITION_BOX,"CHANNEL_DEFINITION_BOX");            put (FileFormatBoxes.COLOUR_SPECIFICATION_BOX,"COLOUR_SPECIFICATION_BOX");            put (FileFormatBoxes.COMPONENT_MAPPING_BOX,"COMPONENT_MAPPING_BOX");            put (FileFormatBoxes.CONTIGUOUS_CODESTREAM_BOX,"CONTIGUOUS_CODESTREAM_BOX");            put (FileFormatBoxes.DEFAULT_DISPLAY_RESOLUTION_BOX,"DEFAULT_DISPLAY_RESOLUTION_BOX");            put (FileFormatBoxes.FILE_TYPE_BOX,"FILE_TYPE_BOX");            put (FileFormatBoxes.IMAGE_HEADER_BOX,"IMAGE_HEADER_BOX");            put (FileFormatBoxes.INTELLECTUAL_PROPERTY_BOX,"INTELLECTUAL_PROPERTY_BOX");            put (FileFormatBoxes.JP2_HEADER_BOX,"JP2_HEADER_BOX");            put (FileFormatBoxes.JP2_SIGNATURE_BOX,"JP2_SIGNATURE_BOX");            put (FileFormatBoxes.PALETTE_BOX,"PALETTE_BOX");            put (FileFormatBoxes.RESOLUTION_BOX,"RESOLUTION_BOX");            put (FileFormatBoxes.URL_BOX,"URL_BOX");            put (FileFormatBoxes.UUID_BOX,"UUID_BOX");            put (FileFormatBoxes.UUID_INFO_BOX,"UUID_INFO_BOX");            put (FileFormatBoxes.UUID_LIST_BOX,"UUID_LIST_BOX");            put (FileFormatBoxes.XML_BOX,"XML_BOX"); }        public static void put (int type, String desc) {            map.put (new Integer (type), desc); }        public static String get (int type) {            return (String) map.get (new Integer(type));}        public static String colorSpecMethod(int meth) {            switch (meth) {            case 2: return "Restricted ICC Profile";            case 1: return "Enumerated Color Space";            default: return "Undefined Color Spec Method"; }}}    /**     * Creates an int from a 4 character String     *   @param fourChar string representation of an integer     * @return the integer which is denoted by the input String.     */    public static int getIntFromString (String fourChar) {        byte [] bytes = fourChar.getBytes();        return getInt (bytes,0); }    /**     * Create an XYZNumber from byte [] input     *   @param data array containing the XYZNumber representation     *   @param offset start of the rep in the array     * @return the created XYZNumber     */    public static XYZNumber getXYZNumber (byte [] data, int offset) {        int x,y,z;        x = getInt (data,offset);        y = getInt (data,offset+int_size);        z = getInt (data,offset+2*int_size);        return new XYZNumber (x,y,z); }    /**     * Create an ICCProfileVersion from byte [] input     *   @param data array containing the ICCProfileVersion representation     *   @param offset start of the rep in the array     * @return  the created ICCProfileVersion     */    public static ICCProfileVersion getICCProfileVersion (byte [] data, int offset) {        byte major = data [offset];        byte minor = data [offset+byte_size];        byte resv1 = data [offset+2*byte_size];        byte resv2 = data [offset+3*byte_size];        return new ICCProfileVersion (major, minor, resv1, resv2); }    /**     * Create an ICCDateTime from byte [] input     *   @param data array containing the ICCProfileVersion representation     *   @param offset start of the rep in the array     * @return the created ICCProfileVersion     */    public static ICCDateTime getICCDateTime (byte [] data, int offset) {        short wYear    = getShort(data, offset);     // Number of the actual year (i.e. 1994)        short wMonth   = getShort(data, offset+ICCProfile.short_size);   // Number of the month (1-12)        short wDay     = getShort(data, offset+2*ICCProfile.short_size);   // Number of the day        short wHours   = getShort(data, offset+3*ICCProfile.short_size);   // Number of hours (0-23)        short wMinutes = getShort(data, offset+4*ICCProfile.short_size);   // Number of minutes (0-59)        short wSeconds = getShort(data, offset+5*ICCProfile.short_size);   // Number of seconds (0-59)        return new ICCDateTime (wYear, wMonth, wDay, wHours, wMinutes, wSeconds); }    /**     * Create a String from a byte []. Optionally swap adjacent byte     * pairs.  Intended to be used to create integer String representations     * allowing for endian translations.     *   @param bfr data array     *   @param offset start of data in array     *   @param length length of data in array     *   @param swap swap adjacent bytes?     * @return String rep of data     */    public static String getString (byte [] bfr, int offset, int length, boolean swap) {        byte [] result = new byte [length];        int incr = swap ? -1 : 1;        int start = swap ? offset+length-1 : offset;        for (int i=0, j=start; i<length; ++i) {            result[i] = bfr [j];            j += incr; }        return new String (result); }    /**     * Create a short from a two byte [], with optional byte swapping.     *   @param bfr data array     *   @param off start of data in array     *   @param swap swap bytes?     * @return native type from representation.     */    public static short getShort (byte [] bfr, int off, boolean swap) {                    int tmp0 = bfr [off] & 0xff; // Clear the sign extended bits in the int.        int tmp1 = bfr [off+1] & 0xff;                                 return (short) (swap ?                         (tmp1 << BITS_PER_BYTE | tmp0):                         (tmp0 << BITS_PER_BYTE | tmp1)); }    /**     * Create a short from a two byte [].     *   @param bfr data array     *   @param off start of data in array     * @return native type from representation.     */    public static short getShort (byte [] bfr, int off) {        int tmp0 = bfr [off] & 0xff; // Clear the sign extended bits in the int.        int tmp1 = bfr [off+1] & 0xff;        return (short) (tmp0 << BITS_PER_BYTE | tmp1); }    /**     * Separate bytes in an int into a byte array lsb to msb order.     *   @param d integer to separate     * @return byte [] containing separated int.     */    public static byte[] setInt (int d) {        return setInt(d, new byte [BYTES_PER_INT]); }    /**     * Separate bytes in an int into a byte array lsb to msb order.     * Return the result in the provided array     *   @param d integer to separate     *   @param b return output here.     * @return reference to output.     */    public static byte[] setInt (int d, byte [] b) {        if (b==null) b = new byte [BYTES_PER_INT];        for (int i=0;i<BYTES_PER_INT;++i) {            b[i] = (byte) (d & 0x0ff);            d = d >> BITS_PER_BYTE; }        return b; }    /**     * Separate bytes in a long into a byte array lsb to msb order.     *   @param d long to separate     * @return byte [] containing separated int.     */    public static byte[] setLong (long d) {        return setLong(d, new byte [BYTES_PER_INT]); }    /**     * Separate bytes in a long into a byte array lsb to msb order.     * Return the result in the provided array     *   @param d long to separate     *   @param b return output here.     * @return reference to output.     */    public static byte[] setLong (long d, byte [] b) {        if (b==null) b = new byte [BYTES_PER_LONG];        for (int i=0;i<BYTES_PER_LONG;++i) {            b[i] = (byte) (d & 0x0ff);            d = d >> BITS_PER_BYTE; }        return b; }            /**     * Create an int from a byte [4], with optional byte swapping.     *   @param bfr data array     *   @param off start of data in array     *   @param swap swap bytes?     * @return native type from representation.     */    public static int getInt (byte [] bfr, int off, boolean swap) {        int tmp0 = getShort (bfr, off, swap)   & 0xffff; // Clear the sign extended bits in the int.        int tmp1 = getShort (bfr, off+2, swap) & 0xffff;        return (int) (swap ?                      (tmp1 << BITS_PER_SHORT | tmp0):                       (tmp0 << BITS_PER_SHORT | tmp1)); }    /**     * Create an int from a byte [4].     *   @param bfr data array     *   @param off start of data in array     * @return native type from representation.     */    public static int getInt (byte [] bfr, int off) {        int tmp0 = getShort (bfr, off)   & 0xffff; // Clear the sign extended bits in the int.        int tmp1 = getShort (bfr, off+2) & 0xffff;        return (int) (tmp0 << BITS_PER_SHORT | tmp1); }    /**     * Create an long from a byte [8].     *   @param bfr data array     *   @param off start of data in array     * @return native type from representation.     */    public static long getLong (byte [] bfr, int off) {        long tmp0 = getInt (bfr, off)   & 0xffffffff; // Clear the sign extended bits in the int.        long tmp1 = getInt (bfr, off+4) & 0xffffffff;        return (long) (tmp0 << BITS_PER_INT | tmp1); }    // Define the set of standard signature and type values    // Because of the endian issues and byte swapping, the profile codes must    // be stored in memory and be addressed by address. As such, only those    // codes required for Restricted ICC use are defined here    /** signature    */ public final static int kdwProfileSignature  = ICCProfile.getInt(new String ("acsp").getBytes(), 0);    /** signature    */ public final static int kdwProfileSigReverse = ICCProfile.getInt(new String ("psca").getBytes(), 0);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产午夜亚洲精品午夜鲁丝片| 久久久久久久一区| 国产精品99久久久久久宅男| 亚洲一区中文在线| 国产婷婷一区二区| 欧美一区二区三区四区高清 | 日韩影院精彩在线| 国产精品久久久久久福利一牛影视 | 美女视频一区在线观看| 亚洲激情欧美激情| 国产精品美女一区二区三区 | 97久久精品人人做人人爽| 免费观看在线综合| 亚洲自拍偷拍欧美| 亚洲欧美在线另类| 国产亚洲一二三区| 精品国内片67194| 欧美一区二区三区系列电影| 欧美偷拍一区二区| 日本韩国精品在线| 91在线云播放| 99久久99久久综合| 成人国产免费视频| 成人午夜在线播放| 国产成人99久久亚洲综合精品| 韩国av一区二区三区四区| 日本不卡在线视频| 青青草原综合久久大伊人精品优势| 亚洲一区二区视频在线观看| 一区二区三区在线视频观看| 亚洲欧美日韩国产另类专区| 亚洲欧美一区二区在线观看| 国产精品热久久久久夜色精品三区| 国产午夜一区二区三区| 亚洲国产综合人成综合网站| 一区二区三区视频在线看| 最新久久zyz资源站| 成人欧美一区二区三区白人| 国产精品久久久久9999吃药| 综合久久国产九一剧情麻豆| 国产精品久久99| 亚洲欧洲综合另类| 一区二区三区小说| 亚洲成人精品在线观看| 日韩精品久久久久久| 免费成人在线影院| 国产一区二区免费看| 成人一区二区三区中文字幕| 不卡一区中文字幕| 欧美在线视频你懂得| 欧美久久久久中文字幕| 日韩免费观看高清完整版在线观看| 欧美成人a∨高清免费观看| 久久久一区二区| 国产精品国产馆在线真实露脸| 中文字幕亚洲不卡| 亚洲国产aⅴ成人精品无吗| 午夜精品久久久久久久久| 美腿丝袜亚洲色图| 国产福利一区二区三区视频在线| 成人黄色在线看| 欧美在线免费视屏| 欧美mv日韩mv国产| 国产精品视频yy9299一区| 一区二区三区在线免费| 免费成人av在线播放| 成人中文字幕合集| 欧美日韩中文一区| 亚洲国产综合在线| 国产一区二区视频在线| 99精品视频在线免费观看| 欧美猛男超大videosgay| 精品成人佐山爱一区二区| 亚洲色图欧美偷拍| 美女国产一区二区| 不卡一区二区在线| 制服丝袜在线91| 国产精品色在线观看| 首页综合国产亚洲丝袜| 国产成人在线影院| 欧美日韩国产另类不卡| 国产清纯白嫩初高生在线观看91| 亚洲制服丝袜av| 国产一区二区精品在线观看| 欧美亚男人的天堂| 国产欧美一区二区在线| 日日夜夜精品视频免费| aaa亚洲精品| 欧美大片在线观看一区二区| 亚洲免费色视频| 国产一区二区美女诱惑| 欧美日本高清视频在线观看| 中文av一区二区| 日本美女一区二区| 色婷婷久久一区二区三区麻豆| 精品久久久久99| 亚洲va欧美va人人爽午夜| 成人av午夜影院| 精品国产123| 91免费版pro下载短视频| 日韩精品一区二区三区视频播放| 一区二区三区在线免费观看| 国产精品18久久久久久久久久久久 | 在线观看国产一区二区| 国产欧美日韩在线| 久久91精品久久久久久秒播| 欧美午夜精品久久久久久超碰 | 免费av成人在线| 在线观看免费亚洲| 国产精品麻豆一区二区| 国产一区二三区好的| 91麻豆精品国产| 亚洲一二三区不卡| 97久久超碰国产精品| 亚洲国产精品ⅴa在线观看| 久久国产精品第一页| 欧美丰满高潮xxxx喷水动漫| 夜夜精品视频一区二区| 91亚洲精品久久久蜜桃网站 | 777午夜精品免费视频| 亚洲综合丝袜美腿| 色丁香久综合在线久综合在线观看| 欧美激情一区二区三区四区 | 不卡电影免费在线播放一区| 久久亚洲捆绑美女| 久久精品99国产精品日本| 日韩无一区二区| 久久精品国产99国产| 日韩精品在线网站| 精一区二区三区| 欧美电影精品一区二区| 久草精品在线观看| 337p粉嫩大胆色噜噜噜噜亚洲| 精品在线播放免费| 久久久久久久久久久电影| 国产乱妇无码大片在线观看| 久久久国产一区二区三区四区小说| 国内不卡的二区三区中文字幕 | 欧美一区二区三区喷汁尤物| 日韩av电影免费观看高清完整版在线观看| 欧美色成人综合| 日韩成人一区二区| 精品国产露脸精彩对白| 国产一区二区福利| 久国产精品韩国三级视频| 欧美成人a∨高清免费观看| 国产一区二区三区免费看| 国产色综合久久| 91亚洲国产成人精品一区二区三 | 美脚の诱脚舐め脚责91| 精品成人免费观看| 高清免费成人av| 亚洲裸体xxx| 欧美放荡的少妇| 国内外成人在线| 中文字幕亚洲精品在线观看| 欧美做爰猛烈大尺度电影无法无天| 午夜精品福利在线| 精品国产91乱码一区二区三区 | 国产精品久久久久久久久晋中| 99久久久免费精品国产一区二区| 一区二区三区精品在线| 在线电影一区二区三区| 国产真实乱偷精品视频免| 国产精品乱人伦| 欧美日韩美女一区二区| 国产在线精品一区二区夜色| 1000部国产精品成人观看| 欧美日韩亚洲丝袜制服| 国产精品一区二区男女羞羞无遮挡| 亚洲欧美在线高清| 欧美一二三区在线| 99国产精品国产精品毛片| 日韩电影在线免费| 国产精品精品国产色婷婷| 777久久久精品| 成人精品gif动图一区| 天天影视涩香欲综合网| 国产午夜亚洲精品理论片色戒| 欧美视频在线观看一区| 国产麻豆精品theporn| 亚洲一卡二卡三卡四卡五卡| 337p日本欧洲亚洲大胆精品| 欧美性猛交xxxx黑人交| 国产美女精品人人做人人爽| 一级中文字幕一区二区| 久久久久久久电影| 欧美日韩成人综合天天影院| 成人性生交大合| 日本女人一区二区三区| 亚洲男同性恋视频| 久久久亚洲欧洲日产国码αv| 欧美日韩亚洲综合一区二区三区| 福利一区福利二区| 另类的小说在线视频另类成人小视频在线 | 欧美日韩在线三级| 成人av在线资源网站| 蜜桃av一区二区三区电影| 亚洲综合视频在线观看| 国产精品美女久久久久久久网站|