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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lzwdecoder.java

?? iText可以制作中文PDF文件的JAVA源程序最新版下載
?? JAVA
字號(hào):
/* * Copyright (c) 2001 Sun Microsystems, Inc. All Rights Reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * -Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * -Redistribution in binary form must reproduct the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * Neither the name of Sun Microsystems, Inc. or the names of contributors may * be used to endorse or promote products derived from this software without * specific prior written permission. * * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY * IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR * NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE * LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING * OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS * LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, * INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF * OR INABILITY TO USE SOFTWARE, EVEN IF SUN HAS BEEN ADVISED OF THE * POSSIBILITY OF SUCH DAMAGES. * * You acknowledge that Software is not designed,licensed or intended for use in * the design, construction, operation or maintenance of any nuclear facility. * * Adapted from the JAI codecs TIFFLZWDecoder. */package com.lowagie.text.pdf;import java.io.OutputStream;import java.io.IOException;import com.lowagie.text.ExceptionConverter;/** * A class for performing LZW decoding. * * */public class LZWDecoder {        byte stringTable[][];    byte data[] = null;    OutputStream uncompData;    int tableIndex, bitsToGet = 9;    int bytePointer, bitPointer;    int nextData = 0;    int nextBits = 0;        int andTable[] = {        511,        1023,        2047,        4095    };        public LZWDecoder() {    }        /**     * Method to decode LZW compressed data.     *     * @param data            The compressed data.     * @param uncompData      Array to return the uncompressed data in.     */    public void decode(byte data[], OutputStream uncompData) {                if(data[0] == (byte)0x00 && data[1] == (byte)0x01) {            throw new RuntimeException("LZW flavour not supported.");        }                initializeStringTable();                this.data = data;        this.uncompData = uncompData;                // Initialize pointers        bytePointer = 0;        bitPointer = 0;                nextData = 0;        nextBits = 0;                int code, oldCode = 0;        byte string[];                while ((code = getNextCode()) != 257) {                        if (code == 256) {                                initializeStringTable();                code = getNextCode();                                if (code == 257) {                    break;                }                                writeString(stringTable[code]);                oldCode = code;                            } else {                                if (code < tableIndex) {                                        string = stringTable[code];                                        writeString(string);                    addStringToTable(stringTable[oldCode], string[0]);                    oldCode = code;                                    } else {                                        string = stringTable[oldCode];                    string = composeString(string, string[0]);                    writeString(string);                    addStringToTable(string);                    oldCode = code;                }            }        }    }            /**     * Initialize the string table.     */    public void initializeStringTable() {                stringTable = new byte[4096][];                for (int i=0; i<256; i++) {            stringTable[i] = new byte[1];            stringTable[i][0] = (byte)i;        }                tableIndex = 258;        bitsToGet = 9;    }        /**     * Write out the string just uncompressed.     */    public void writeString(byte string[]) {        try {            uncompData.write(string);        }        catch (IOException e) {            throw new ExceptionConverter(e);        }    }        /**     * Add a new string to the string table.     */    public void addStringToTable(byte oldString[], byte newString) {        int length = oldString.length;        byte string[] = new byte[length + 1];        System.arraycopy(oldString, 0, string, 0, length);        string[length] = newString;                // Add this new String to the table        stringTable[tableIndex++] = string;                if (tableIndex == 511) {            bitsToGet = 10;        } else if (tableIndex == 1023) {            bitsToGet = 11;        } else if (tableIndex == 2047) {            bitsToGet = 12;        }    }        /**     * Add a new string to the string table.     */    public void addStringToTable(byte string[]) {                // Add this new String to the table        stringTable[tableIndex++] = string;                if (tableIndex == 511) {            bitsToGet = 10;        } else if (tableIndex == 1023) {            bitsToGet = 11;        } else if (tableIndex == 2047) {            bitsToGet = 12;        }    }        /**     * Append <code>newString</code> to the end of <code>oldString</code>.     */    public byte[] composeString(byte oldString[], byte newString) {        int length = oldString.length;        byte string[] = new byte[length + 1];        System.arraycopy(oldString, 0, string, 0, length);        string[length] = newString;                return string;    }        // Returns the next 9, 10, 11 or 12 bits    public int getNextCode() {        // Attempt to get the next code. The exception is caught to make        // this robust to cases wherein the EndOfInformation code has been        // omitted from a strip. Examples of such cases have been observed        // in practice.        try {            nextData = (nextData << 8) | (data[bytePointer++] & 0xff);            nextBits += 8;                        if (nextBits < bitsToGet) {                nextData = (nextData << 8) | (data[bytePointer++] & 0xff);                nextBits += 8;            }                        int code =            (nextData >> (nextBits - bitsToGet)) & andTable[bitsToGet-9];            nextBits -= bitsToGet;                        return code;        } catch(ArrayIndexOutOfBoundsException e) {            // Strip not terminated as expected: return EndOfInformation code.            return 257;        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区中文字幕| 久久精品免费观看| 日本精品视频一区二区| 亚洲欧洲综合另类| 欧美日韩久久一区二区| 美女一区二区三区| 欧美激情一区二区三区全黄| 99在线视频精品| 亚洲成av人影院| 日韩女同互慰一区二区| 国产精品综合久久| 亚洲色欲色欲www| 欧美日韩一区二区不卡| 精品一区二区三区免费毛片爱| 久久久亚洲国产美女国产盗摄 | 91在线看国产| 亚洲成人动漫在线观看| 26uuu精品一区二区| 91网上在线视频| 视频在线在亚洲| 国产欧美视频一区二区| 欧美亚洲一区二区在线观看| 国产综合成人久久大片91| 中文字幕中文字幕在线一区| 欧美日韩不卡视频| 国产成人精品亚洲午夜麻豆| 亚洲一区二区欧美激情| 久久日韩精品一区二区五区| 色欧美乱欧美15图片| 蜜臀av一区二区三区| 国产精品久久久一本精品 | 奇米精品一区二区三区在线观看一| 欧美成人一区二区三区 | 欧美天堂一区二区三区| 国精产品一区一区三区mba桃花| 最新欧美精品一区二区三区| 日韩欧美在线网站| 色欧美乱欧美15图片| 久久国产精品99久久人人澡| 一区二区三区四区五区视频在线观看 | 欧美精品一区二区久久婷婷 | 三级亚洲高清视频| 国产日韩av一区二区| 欧美久久一区二区| jlzzjlzz国产精品久久| 黑人巨大精品欧美一区| 亚洲第一福利视频在线| 国产精品免费久久| 欧美一区二区三区免费视频| 91蝌蚪porny| 国产成人aaa| 日韩av网站在线观看| 亚洲美女视频在线观看| 国产人久久人人人人爽| 91精品国产综合久久精品app| 日本精品裸体写真集在线观看| 国产电影精品久久禁18| 老司机一区二区| 天天综合色天天综合| 亚洲嫩草精品久久| 国产精品久久久久婷婷二区次| 欧美草草影院在线视频| 欧美高清视频一二三区 | 中文一区在线播放| 欧美成人激情免费网| 在线不卡免费av| 欧美视频在线一区| 色婷婷激情一区二区三区| 成人黄色一级视频| 高清不卡一二三区| 国产黄人亚洲片| 老司机免费视频一区二区| 水蜜桃久久夜色精品一区的特点| 亚洲精品中文字幕在线观看| 国产精品私人影院| 国产精品久久久久久久午夜片 | 99在线精品一区二区三区| 成人动漫中文字幕| 成人午夜激情视频| 成人黄色片在线观看| 成人av在线资源| 91在线porny国产在线看| 99国产精品久| 在线观看一区不卡| 欧日韩精品视频| 欧美精品1区2区| 4438成人网| 精品999久久久| 国产日韩精品视频一区| 国产精品初高中害羞小美女文| **性色生活片久久毛片| 一区二区三区四区在线播放| 香蕉乱码成人久久天堂爱免费| 亚洲电影你懂得| 蜜乳av一区二区三区| 精品亚洲aⅴ乱码一区二区三区| 国产一区二区三区av电影| 国产成人精品免费网站| 99精品欧美一区| 欧美老人xxxx18| 欧美变态tickle挠乳网站| 亚洲国产精品av| 一区二区三区免费在线观看| 日欧美一区二区| 久久97超碰色| 99热这里都是精品| 91 com成人网| 国产性色一区二区| 亚洲精品写真福利| 丝袜a∨在线一区二区三区不卡| 久久99精品久久久久久| 国产91在线观看| 在线观看亚洲a| 精品国产sm最大网站| 亚洲欧洲av色图| 日韩激情视频网站| 国产91高潮流白浆在线麻豆| 欧美优质美女网站| 久久免费美女视频| 亚洲综合色噜噜狠狠| 激情综合色丁香一区二区| 97精品国产露脸对白| 欧美一卡2卡三卡4卡5免费| 国产喷白浆一区二区三区| 亚洲一区二区欧美日韩| 国产成人午夜高潮毛片| 欧美另类变人与禽xxxxx| 国产精品久久久久9999吃药| 老汉av免费一区二区三区| 97精品超碰一区二区三区| 日韩区在线观看| 亚洲乱码国产乱码精品精小说| 亚洲乱码国产乱码精品精小说| 麻豆国产精品视频| 色欧美片视频在线观看| 久久久影院官网| 视频一区二区中文字幕| av成人免费在线| 精品国偷自产国产一区| 亚洲18色成人| 99精品视频中文字幕| 国产亚洲精品福利| 男人的天堂亚洲一区| 色国产综合视频| 国产欧美va欧美不卡在线| 免费日本视频一区| 欧美日韩一区二区三区不卡| 亚洲欧美自拍偷拍色图| 国产一区二区福利| 91精品国产91久久久久久最新毛片| 亚洲精品中文字幕在线观看| 成人黄色片在线观看| 久久久精品影视| 国产一区美女在线| 欧美白人最猛性xxxxx69交| 日韩电影一区二区三区四区| 欧美影视一区二区三区| 亚洲精品v日韩精品| jiyouzz国产精品久久| 中文字幕精品一区| 国产乱子轮精品视频| 在线综合+亚洲+欧美中文字幕| 亚洲精品成a人| 91福利在线导航| 亚洲精品国产a| 一本色道综合亚洲| 亚洲少妇30p| 在线观看av一区二区| 夜夜夜精品看看| 欧美在线|欧美| 五月综合激情婷婷六月色窝| 精品视频一区三区九区| 亚洲一区二区欧美日韩 | 日韩欧美一区二区免费| 日本女优在线视频一区二区| 欧美一区日韩一区| 麻豆成人91精品二区三区| 精品国产一区二区三区不卡 | 欧美人妇做爰xxxⅹ性高电影| 亚洲国产综合91精品麻豆| 欧美亚洲综合色| 五月天网站亚洲| 欧美一区二区三区色| 久久99精品国产.久久久久久 | 亚洲国产精品99久久久久久久久 | 国产福利不卡视频| 国产精品欧美久久久久一区二区| 99精品热视频| 亚洲成人av中文| 精品国产一区久久| 国产成人免费高清| 亚洲欧美色图小说| 欧美日韩一区久久| 九色综合狠狠综合久久| 久久精品人人做人人爽人人| 91在线精品一区二区三区| 亚洲第一主播视频| 久久婷婷色综合| 91蝌蚪porny| 久久99精品久久久久婷婷|