public Compressor(byte[] image) { buf1 = new MemoryStream(); if (PDF.original_zlib) { ods1 = new OptionalDeflateStream(buf1); ods1.Write(image, 0, image.Length); ods1.Close(); } else { dos1 = new DeflaterOutputStream(buf1, new Deflater()); dos1.Write(image, 0, image.Length); dos1.Finish(); } }
public void Write(byte[] buffer, int off, int len) { if (PDF.original_zlib) { ds2.Write(buffer, off, len); return; } // Compress the data in the buffer ds1.Write(buffer, off, len); ds1.Close(); buf2.WriteTo(buf1); // Calculate the Adler-32 checksum ulong s1 = 1L; ulong s2 = 0L; for (int i = 0; i < len; i++) { s1 = (s1 + buffer[off + i]) % prime; s2 = (s2 + s1) % prime; } appendAdler((s2 << 16) + s1); }