Class RBCodecCCITTFaxDecode


  • public class RBCodecCCITTFaxDecode
    extends RBCodec
    • Constructor Summary

      Constructors 
      Constructor Description
      RBCodecCCITTFaxDecode​(byte[] bits, int offset, int k, int rows, int columns, int numdamagedrows, boolean aligned, boolean eolrequired, boolean eoblockrequired, boolean blackisone)
      main constructor
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void backup()
      Back the stream up to the marked position
      boolean blackIsOne()
      Returns whether a pixel value or 1 should be interpreted as black or white
      void byteAlignStream()
      Skips over any extra padding bits at the end of a byte.
      static byte[] bytesForCCITTFaxDecode​(byte[] bytes, int offset, int len, int K, int rows, int columns, boolean byteAligned, boolean eolRequired, boolean eoblockRequired, boolean blackIsOne, int allowedDamagedRows)
      convenience method to decode a single image
      boolean decodeScanline1D​(byte[] outdata)  
      boolean decodeScanline2D​(byte[] outdata)
      2D decoder.
      byte[] decodeStream()
      Decode the entire image at once
      void decodeStream​(java.io.OutputStream outstream)
      Decode, writing image bytes to outstream
      int getHeight()
      Get the height of the decompressed image
      int getNextCodeword​(int[] table)  
      int getNextInt​(int[] table)
      Interprets next n codewords as an integer.
      int getWidth()
      Get the width of the decompressed image
      void locateReferenceMarks​(byte[] scanline, int a0, byte a0color, int[] b)  
      void mark()
      Mark the current point in the bitstream.
      void setDimensions​(int width, int height)
      Set the dimensions manually
      void writeScanline​(java.io.OutputStream out, byte[] scanline)
      Write the decoded scanline to a stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RBCodecCCITTFaxDecode

        public RBCodecCCITTFaxDecode​(byte[] bits,
                                     int offset,
                                     int k,
                                     int rows,
                                     int columns,
                                     int numdamagedrows,
                                     boolean aligned,
                                     boolean eolrequired,
                                     boolean eoblockrequired,
                                     boolean blackisone)
        main constructor
    • Method Detail

      • bytesForCCITTFaxDecode

        public static byte[] bytesForCCITTFaxDecode​(byte[] bytes,
                                                    int offset,
                                                    int len,
                                                    int K,
                                                    int rows,
                                                    int columns,
                                                    boolean byteAligned,
                                                    boolean eolRequired,
                                                    boolean eoblockRequired,
                                                    boolean blackIsOne,
                                                    int allowedDamagedRows)
        convenience method to decode a single image
      • getNextCodeword

        public int getNextCodeword​(int[] table)
      • getNextInt

        public int getNextInt​(int[] table)
        Interprets next n codewords as an integer. Rules are: numbers less than 64 are low digits. numbers between 64 and 2559 require one additional low digit. 2560 requires an additional number, containing any number of digits.
      • byteAlignStream

        public void byteAlignStream()
        Skips over any extra padding bits at the end of a byte.
      • mark

        public void mark()
        Mark the current point in the bitstream. Use backup() to return to this point.
      • backup

        public void backup()
        Back the stream up to the marked position
      • decodeStream

        @Nullable
        public byte[] decodeStream()
        Decode the entire image at once
      • decodeStream

        public void decodeStream​(java.io.OutputStream outstream)
                          throws PDFException,
                                 java.io.IOException
        Decode, writing image bytes to outstream
        Throws:
        PDFException
        java.io.IOException
      • decodeScanline1D

        public boolean decodeScanline1D​(byte[] outdata)
      • locateReferenceMarks

        public void locateReferenceMarks​(byte[] scanline,
                                         int a0,
                                         byte a0color,
                                         int[] b)
      • decodeScanline2D

        public boolean decodeScanline2D​(byte[] outdata)
        2D decoder. outdata is a buffer which the new scanline will be written to. On input, however, outdata should have the bits for the previous scanline. The 2D encoder will include codewords which make reference to the previous scanline. For the very first scaneline, outdata should be initialized to all white.
      • writeScanline

        public void writeScanline​(java.io.OutputStream out,
                                  byte[] scanline)
                           throws java.io.IOException
        Write the decoded scanline to a stream.
        Throws:
        java.io.IOException
      • getWidth

        public int getWidth()
        Get the width of the decompressed image
      • getHeight

        public int getHeight()
        Get the height of the decompressed image
      • blackIsOne

        public boolean blackIsOne()
        Returns whether a pixel value or 1 should be interpreted as black or white
      • setDimensions

        public void setDimensions​(int width,
                                  int height)
        Set the dimensions manually