/// <summary> /// deflater压缩 /// </summary> /// <param name="inputByte"></param> /// <returns></returns> public static byte[] deflater(byte[] inputByte) { byte[] temp = new byte[1024]; MemoryStream memory = new MemoryStream(); ICSharpCode.SharpZipLib.Zip.Compression.Deflater def = new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(); def.SetInput(inputByte); def.Finish(); while (!def.IsFinished) { int extracted = def.Deflate(temp); if (extracted > 0) { memory.Write(temp, 0, extracted); } else { break; } } return memory.ToArray(); }
/// <summary> /// deflater压缩 /// </summary> /// <param name="inputByte"></param> /// <returns></returns> public static byte[] deflater(byte[] inputByte) { byte[] temp = new byte[1024]; MemoryStream memory = new MemoryStream(); ICSharpCode.SharpZipLib.Zip.Compression.Deflater def = new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(); def.SetInput(inputByte); def.Finish(); while (!def.IsFinished) { int extracted = def.Deflate(temp); if (extracted > 0) { memory.Write(temp, 0, extracted); } else { break; } } return(memory.ToArray()); }
public static string ToDeflatedCompressedBase64String(string inp, string ns) { StringBuilder sb = new StringBuilder(); TextWriter textWriter = (TextWriter) new StringWriter(sb); new XmlSerializer(typeof(string), ns).Serialize(textWriter, (object)inp); textWriter.Close(); sb.ToString(); ICSharpCode.SharpZipLib.Zip.Compression.Deflater deflater = new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(1, true); MemoryStream memoryStream = new MemoryStream(); byte[] numArray = new byte[256]; deflater.SetInput(new UnicodeEncoding().GetBytes(inp)); deflater.Flush(); int count; do { count = deflater.Deflate(numArray, 0, numArray.Length); memoryStream.Write(numArray, 0, count); }while (count > 0); return(Convert.ToBase64String(memoryStream.ToArray())); }
public static byte[] LowLevelCompress(byte[] bytes, int level, out uint adler, byte[] compressedBytes, bool trimCompressedBytes = true, bool noZlibHeaderOrFooter = true) { int compressed_size; var zip = new ICSharpCode.SharpZipLib.Zip.Compression.Deflater(level, noZlibHeaderOrFooter); { zip.SetInput(bytes); zip.Finish(); compressed_size = zip.Deflate(compressedBytes); adler = (uint)zip.Adler; if (trimCompressedBytes) { byte[] cmp_data = compressedBytes; Array.Resize(ref cmp_data, compressed_size); compressedBytes = cmp_data; } } return(compressedBytes); }
private void CompresNowZip() { ICSharpCode.SharpZipLib.Zip.Compression.Deflater def = new ICSharpCode.SharpZipLib.Zip.Compression.Deflater( ICSharpCode.SharpZipLib.Zip.Compression.Deflater.BEST_COMPRESSION, true); Stream aux = new MemoryStream(); byte[] data = new byte[this.m_streaminput.Length]; //minimo el tamaño sin comprimir. int size = 0; try { def.SetInput(this.m_byteinput); def.Finish(); size = def.Deflate(data); if (size == 0) while (def.IsFinished == false) { if (def.IsNeedingInput) { Exception e = new Exception("Tamaño muy pequeño para comprimir"); break; } else { size = def.Deflate(data); System.Threading.Thread.Sleep(2000); } } def.Flush(); } catch (ZipException e) { this.m_byteoutput = null; this.m_streamoutput = null; Debug.WriteLine(e.Message); } catch (Exception e) { this.m_byteoutput = null; this.m_streamoutput = null; Debug.WriteLine(e.Message); } finally { this.m_byteoutput = null; this.m_byteoutput = new byte[size]; this.m_streamoutput = new MemoryStream(size); this.m_streamoutput.Write(data, 0, size); this.m_streamoutput.Seek(0, SeekOrigin.Begin); this.m_streamoutput.Read(this.m_byteoutput, 0, size); this.m_streamoutput.Seek(0, SeekOrigin.Begin); } }