org.apache.poi.hdgf
Class HDGFLZW

java.lang.Object
  extended by org.apache.poi.util.LZWDecompresser
      extended by org.apache.poi.hdgf.HDGFLZW

public class HDGFLZW
extends org.apache.poi.util.LZWDecompresser

A decoder for the crazy LZW implementation used in Visio. According to VSDump, "it's a slightly perverted version of LZW compression, with inverted meaning of flag byte and 0xFEE as an 'initial shift'". It uses 12 bit codes (http://www.gnome.ru/projects/vsdump_en.html) Two good resources on LZW are: http://en.wikipedia.org/wiki/LZW http://marknelson.us/1989/10/01/lzw-data-compression/


Constructor Summary
HDGFLZW()
           
 
Method Summary
 byte[] compress(java.io.InputStream src)
          Compress the given input stream, returning the array of bytes of the compressed input
 void compress(java.io.InputStream src, java.io.OutputStream res)
          Performs the Visio compatible streaming LZW compression.
 
Methods inherited from class org.apache.poi.util.LZWDecompresser
decompress, decompress, fromByte, fromInt
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HDGFLZW

public HDGFLZW()
Method Detail

compress

public byte[] compress(java.io.InputStream src)
                throws java.io.IOException
Compress the given input stream, returning the array of bytes of the compressed input

Throws:
java.io.IOException

compress

public void compress(java.io.InputStream src,
                     java.io.OutputStream res)
              throws java.io.IOException
Performs the Visio compatible streaming LZW compression.

Throws:
java.io.IOException