/// <summary> /// Creates a new deflater with given compression level. /// </summary> /// <param name="lvl"> /// the compression level, a value between NO_COMPRESSION /// and BEST_COMPRESSION. /// </param> /// <param name="nowrap"> /// true, if we should suppress the deflate header at the /// beginning and the adler checksum at the end of the output. This is /// useful for the GZIP format. /// </param> /// <exception cref="System.ArgumentOutOfRangeException">if lvl is out of range.</exception> public Deflater(int lvl, bool nowrap) { if (lvl == DEFAULT_COMPRESSION) { lvl = 6; } else if (lvl < NO_COMPRESSION || lvl > BEST_COMPRESSION) { throw new ArgumentOutOfRangeException("lvl"); } pending = new DeflaterPending(); engine = new DeflaterEngine(pending); this.noHeader = nowrap; SetStrategy(DeflateStrategy.Default); SetLevel(lvl); Reset(); }
public DeflaterHuffman(DeflaterPending pending) { this.pending = pending; literalTree = new Tree(this, LITERAL_NUM, 257, 15); distTree = new Tree(this, DIST_NUM, 1, 15); blTree = new Tree(this, BITLEN_NUM, 4, 7); d_buf = new short[BUFSIZE]; l_buf = new byte [BUFSIZE]; }