Class RunLengthDecode

java.lang.Object
com.sun.pdfview.decode.RunLengthDecode

public class RunLengthDecode extends Object
decode an array of Run Length encoded bytes into a byte array
  • Field Details

    • RUN_LENGTH_EOD

      private static final int RUN_LENGTH_EOD
      the end of data in the RunLength encoding.
      See Also:
    • buf

      private ByteBuffer buf
  • Constructor Details

    • RunLengthDecode

      private RunLengthDecode(ByteBuffer buf)
      initialize the decoder with an array of bytes in RunLength format
  • Method Details

    • decode

      private ByteBuffer decode() throws PDFParseException
      decode the array
      Returns:
      the decoded bytes
      Throws:
      PDFParseException
    • decode

      public static ByteBuffer decode(ByteBuffer buf, PDFObject params) throws PDFParseException
      decode an array of bytes in RunLength format.

      RunLength format consists of a sequence of a byte-oriented format based on run length. There are a series of "runs", where a run is a length byte followed by 1 to 128 bytes of data. If the length is 0-127, the following length+1 (1 to 128) bytes are to be copied. If the length is 129 through 255, the following single byte is copied 257-length (2 to 128) times. A length value of 128 means and End of Data (EOD).

      Parameters:
      buf - the RUnLEngth encoded bytes in a byte buffer
      params - parameters to the decoder (ignored)
      Returns:
      the decoded bytes
      Throws:
      PDFParseException