⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccittfaxdecodefilter.java

📁 非常有用的操作pdf文件的java源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        
    }

    private void writeTagStripOffset(OutputStream result, int value) throws IOException
    {
        // TAG-ID 111
        result.write(1);
        result.write(17);
        
        // TAG-TYPE LONG=4
        result.write(0);
        result.write(4);
        

        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        

        // TAG-VALUE = 8 //VOR TAG-DICTIONARY
        int i1 = value/16777216;//=value/(256*256*256)
        int i2 = (value-i1*16777216)/65536;
        int i3 = (value-i1*16777216-i2*65536)/256;
        int i4 = value % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
    
    }

    private void writeTagSamplesPerPixel(OutputStream result, int value) throws IOException
    {
        // TAG-ID 115
        result.write(1);
        result.write(21);
        

        // TAG-TYPE SHORT=3
        result.write(0);
        result.write(3);
        

        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        

        // TAG-VALUE
        result.write(value / 256);
        result.write(value % 256);
        result.write(0);// SHORT=0
        result.write(0);// SHORT=0
        
    }

    private void writeTagRowsPerStrip(OutputStream result, int value) throws IOException
    {
        // TAG-ID 116
        result.write(1);
        result.write(22);
        

        // TAG-TYPE SHORT=3
        result.write(0);
        result.write(3);
    

        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
    

        // TAG-VALUE
        result.write(value / 256);
        result.write(value % 256);
        result.write(0);// SHORT=0
        result.write(0);// SHORT=0
        
    }

    private void writeTagStripByteCount(OutputStream result, int value) throws IOException
    {
        //@todo value auswerten
        // TAG-ID 117
        result.write(1);
        result.write(23);
    
        // TAG-TYPE LONG=4
        result.write(0);
        result.write(4);
    

        // TAG-LENGTH = 1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        
        // TAG-VALUE
        int i1 = value/16777216;//=value/(256*256*256)
        int i2 = (value-i1*16777216)/65536;
        int i3 = (value-i1*16777216-i2*65536)/256;
        int i4 = value % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
        
    }

    private void writeTagXRes(OutputStream result, int value1, int value2) throws IOException
    {
        // TAG-ID 11A
        result.write(1);
        result.write(26);
        
        // TAG-TYPE RATIONAL=5
        result.write(0);
        result.write(5);
        
        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        

        // TAG-VALUE=OFFSET TO RATIONAL
        int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
        int i1 = valueOffset/16777216;//=value/(256*256*256)
        int i2 = (valueOffset-i1*16777216)/65536;
        int i3 = (valueOffset-i1*16777216-i2*65536)/256;
        int i4 = valueOffset % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
        
        i1 = value1 /16777216;
        i2 = (value1-i1*16777216)/65536;
        i3 = (value1-i1*16777216 - i2*65536)/256;
        i4 = value1 % 256;
        tailer.write(i1);
        tailer.write(i2);
        tailer.write(i3);
        tailer.write(i4);
        
        i1 = value2 /16777216;
        i2 = (value2-i1*16777216)/65536;
        i3 = (value2-i1*16777216 - i2*65536)/256;
        i4 = value2 % 256;
        tailer.write(i1);
        tailer.write(i2);
        tailer.write(i3);
        tailer.write(i4);
        
        tailingBytesCount += 8;
    }

    private void writeTagYRes(OutputStream result, int value1, int value2) throws IOException
    {
        // TAG-ID 11B
        result.write(1);
        result.write(27);
        

        // TAG-TYPE RATIONAL=5
        result.write(0);
        result.write(5);
        
        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        

        // TAG-VALUE=OFFSET TO RATIONAL
        int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
        int i1 = valueOffset/16777216;//=value/(256*256*256)
        int i2 = (valueOffset-i1*16777216)/65536;
        int i3 = (valueOffset-i1*16777216-i2*65536)/256;
        int i4 = valueOffset % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
        
        i1 = value1 /16777216;
        i2 = (value1-i1*16777216)/65536;
        i3 = (value1-i1*16777216 - i2*65536)/256;
        i4 = value1 % 256;
        tailer.write(i1);
        tailer.write(i2);
        tailer.write(i3);
        tailer.write(i4);
        
        i1 = value2 /16777216;
        i2 = (value2-i1*16777216)/65536;
        i3 = (value2-i1*16777216 - i2*65536)/256;
        i4 = value2 % 256;
        tailer.write(i1);
        tailer.write(i2);
        tailer.write(i3);
        tailer.write(i4);
        
        tailingBytesCount += 8;
    }

    private void writeTagResolutionUnit(OutputStream result, int value) throws IOException
    {
        // TAG-ID 128
        result.write(1);
        result.write(40);
        
        // TAG-TYPE SHORT=3
        result.write(0);
        result.write(3);
        
        // TAG-LENGTH = 1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        
        // TAG-VALUE
        result.write(value/256);
        result.write(value%256);
        result.write(0);// SHORT=0
        result.write(0);// SHORT=0
        
    }

    private void writeTagOrientation(OutputStream result, int value) throws IOException
    {
        // TAG-ID 112
        result.write(1);
        result.write(18);
        
        // TAG-TYPE SHORT = 3
        result.write(0);
        result.write(3);
        

        // TAG-LENGTH=1
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(1);
        
        // TAG-VALUE
        result.write(value / 256);
        result.write(value % 256);
        result.write(0);// SHORT=0
        result.write(0);// SHORT=0
        
    }

    private void writeTagTailer(OutputStream result) throws IOException
    {
        // END OF TAG-DICTIONARY
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(0);
        
        // TAILER WITH VALUES OF RATIONALFIELD's
        result.write(tailer.toByteArray());
    }

    private void writeTagSoftware(OutputStream result, byte[] text) throws IOException
    {
        // TAG-ID 131
        result.write(1);
        result.write(49);
        
        // TAG-TYPE ASCII=2
        result.write(0);
        result.write(2);
        

        // TAG-LENGTH=id.length+1
        result.write(0);
        result.write(0);
        result.write((text.length + 1) / 256);
        result.write((text.length + 1) % 256);
        
        // TAG-VALUE
        int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
        int i1 = valueOffset/16777216;//=value/(256*256*256)
        int i2 = (valueOffset-i1*16777216)/65536;
        int i3 = (valueOffset-i1*16777216-i2*65536)/256;
        int i4 = valueOffset % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
        

        tailer.write(text);
        tailer.write(0);
        tailingBytesCount += text.length + 1;
    }

    private void writeTagDateTime(OutputStream result, Date date) throws IOException
    {
        // TAG-ID 132
        result.write(1);
        result.write(50);
        

        // TAG-TYPE ASCII=2
        result.write(0);
        result.write(2);
        

        // TAG-LENGTH=20
        result.write(0);
        result.write(0);
        result.write(0);
        result.write(20);
    

        // TAG-VALUE
        int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
        int i1 = valueOffset/16777216;//=value/(256*256*256)
        int i2 = (valueOffset-i1*16777216)/65536;
        int i3 = (valueOffset-i1*16777216-i2*65536)/256;
        int i4 = valueOffset % 256;
        result.write(i1);                
        result.write(i2);
        result.write(i3);        
        result.write(i4);        
        
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
        String datetime = sdf.format(date);
        tailer.write(datetime.getBytes());
        tailer.write(0);

        tailingBytesCount += 20;
    }

    /**
     * This will encode some data.
     * 
     * @param rawData
     *            The raw data to encode.
     * @param result
     *            The place to write to encoded results to.
     * @param options
     *            The options to use to encode the data.
     * 
     * @throws IOException
     *             If there is an error compressing the stream.
     */
    public void encode(InputStream rawData, OutputStream result, COSDictionary options) throws IOException
    {
        System.err.println("Warning: CCITTFaxDecode.encode is not implemented yet, skipping this stream.");
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -