/// <summary>
		/// Compress raw bytes
		/// </summary>
		/// <param name="compressor">Compressor to extend</param>
		/// <param name="data">The data to compress</param>
		/// <returns></returns>
		public static byte[] Compress(this ICompressor compressor, byte[] data)
		{
			using (var outputStream = new MemoryStream(data))
			{
				return compressor.Compress(outputStream);
			}
		}
Пример #2
0
		public static byte[] GetRawBytes(this Bitmap bitmap, Bitmap.CompressFormat format)
		{
			//Convert bitmap to byte array
			MemoryStream stream = new MemoryStream();
			bitmap.Compress(format, 100, stream);
			byte[] byteArray = stream.ToArray();
			return byteArray;
		}
Пример #3
0
 public static void SaveToFile(this Bitmap bitmap, string filePath)
 {
     using (FileStream stream = new FileStream(filePath, FileMode.Create))
     {
         bitmap.Compress(Bitmap.CompressFormat.Png, 100, stream);
         stream.Flush();
     }
 }
		/// <summary>
		/// Compress a string with optional encoding
		/// </summary>
		/// <param name="compressor">Compressor to extend</param>
		/// <param name="text">The text to compress</param>
		/// <param name="encoding">The optional encoding to use.</param>
		/// <returns></returns>
		public static byte[] Compress(this ICompressor compressor, string text, Encoding encoding = null)
		{
			if (encoding == null) encoding = Encoding.UTF8;
			using (var outputStream = new MemoryStream(encoding.GetBytes(text)))
			{
				return compressor.Compress(outputStream);
			}
		}
Пример #5
0
        /// <summary>
        /// 비동기 방식으로 정보를 <paramref name="compressor"/>로 압축합니다.
        /// </summary>
        /// <param name="compressor">압축기</param>
        /// <param name="input">압축할 내용</param>
        /// <returns>압축 작업</returns>
        public static Task<byte[]> CompressTask(this ICompressor compressor, byte[] input) {
            compressor.ShouldNotBeNull("compressor");
            input.ShouldNotBeEmpty("input");

            if(IsDebugEnabled)
                log.Debug("바이트 배열을 비동기 방식으로 압축합니다...");

            return Task.Factory.StartNew(() => compressor.Compress(input));
        }
Пример #6
0
        /// <summary>
        /// 지정된 문자열을 압축하고, 압축된 데이타를 Base64 인코딩으로 변환하여 반환한다.
        /// </summary>
        /// <param name="compressor"><see cref="ICompressor"/> 구현 객체</param>
        /// <param name="text">압축할 문자열</param>
        /// <returns></returns>
        public static string CompressString(this ICompressor compressor, string text) {
            if(text.IsEmpty())
                return string.Empty;

            if(IsDebugEnabled)
                log.Debug("Compress string is starting... Input=[{0}]", text.EllipsisChar(30));

            return compressor.Compress(text.ToBytes(Encoding.UTF8)).Base64Encode();
        }
Пример #7
0
 /// <summary>
 /// Helper method to turn bmp image into byte array
 /// </summary>
 public static byte [] ToByteArray (this Bitmap bmp)
 {
     byte [] bytes = null;
     if (bmp != null) {
         using (MemoryStream stream = new MemoryStream ()) {
             if (bmp.Compress (Bitmap.CompressFormat.Jpeg, 80, stream)) {
                 bytes = stream.ToArray ();
             }
         }
     }
     return bytes;
 }
Пример #8
0
 public static void CompressToFile(this byte[] self, string filePath)
 {
     var compressedArray = self.Compress();
     compressedArray.WriteToDisk(filePath);
 }
Пример #9
0
        /// <summary>Compress a byte array using specified compression strength.</summary>
        public static byte[] Compress(this byte[] source, int startIndex, int length, CompressionStrength strength)
        {
	        return source.Compress(startIndex, length, strength, 0);
        }
Пример #10
0
 /// <summary>Compress a byte array using specified compression strength.</summary>
 public static byte[] Compress(this byte[] source, CompressionStrength strength)
 {
     return source.Compress(0, source.Length, strength, 0);
 }
Пример #11
0
        /// <summary>Compress a byte array using default compression strength.</summary>
        public static byte[] Compress(this byte[] source)
        {
	        return source.Compress(CompressionStrength.DefaultCompression);
        }
Пример #12
0
 /// <summary>
 /// Compresses a byte array using the specified compression type.
 /// </summary>
 /// <param name="bytes">The byte array to be compressed.</param>
 /// <param name="type">Type of compression to use.</param>
 /// <returns>Compressed byte array.</returns>
 public static byte[] Compress(this byte[] bytes, CompressionType type)
 {
     return bytes.Compress(CompressionLevel.Default, type);
 }
Пример #13
0
 /// <summary>
 /// Compresses a byte array using Zlib.
 /// </summary>
 /// <param name="bytes">The byte array to be compressed.</param>
 /// <param name="level">Amount of compression to use.</param>
 /// <returns>Compressed byte array.</returns>
 public static byte[] Compress(this byte[] bytes, CompressionLevel level)
 {
     return bytes.Compress(level, CompressionType.Zlib);
 }
Пример #14
0
 /// <summary>
 /// Compresses a byte array using Zlib.
 /// </summary>
 /// <param name="bytes">The byte array to be compressed.</param>
 /// <returns>Compressed byte array.</returns>
 public static byte[] Compress(this byte[] bytes)
 {
     return bytes.Compress(CompressionLevel.Default);
 }
Пример #15
0
 /// <summary>
 /// 비동기 방식으로 지정한 정보를 압축합니다.
 /// </summary>
 /// <param name="compressor"><see cref="ICompressor"/> 구현 객체</param>
 /// <param name="plain">압축할 데이터</param>
 /// <returns>압축을 수행하는 Task</returns>
 public static Task<byte[]> CompressAsync(this ICompressor compressor, byte[] plain) {
     return Task.Factory.StartNew(() => compressor.Compress(plain));
 }
Пример #16
0
        /// <summary>Compress a stream using specified compression strength</summary>
        /// <remarks>
        /// This returns a memory stream of the compressed results, if the incoming stream is
        /// very large this will consume a large amount memory.  In this case use the overload
        /// that takes the destination stream as a parameter instead.
        /// </remarks>
        /// <param name="source">The <see cref="Stream"/> to compress.</param>
        /// <param name="strength">The <see cref="CompressionStrength"/> of the compression.</param>
        /// <returns>Returns a <see cref="MemoryStream"/> of the compressed <see cref="Stream"/>.</returns>
        public static MemoryStream Compress(this Stream source, CompressionStrength strength)
        {
	        MemoryStream destination = new MemoryStream();
	        source.Compress(destination, strength, null);
	        return destination;
        }
Пример #17
0
        /// <summary>
        /// Compress a byte array using standard compression method.
        /// </summary>
        /// <param name="source">The <see cref="Byte"/> array to compress.</param>
        /// <returns>A compressed version of the source <see cref="Byte"/> array.</returns>
        public static byte[] Compress(this byte[] source)
        {
	        return source.Compress(CompressionStrength.Standard);
        }
Пример #18
0
 public static byte[] Compress(this byte[] uncompressed)
 {
     return uncompressed.Compress(6);  // The default compression level, with a good balance of speed and compression efficiency.
 }
Пример #19
0
 /// <summary>
 /// 스트림을 압축한다.
 /// </summary>
 /// <param name="compressor"><see cref="ICompressor"/> 구현 객체</param>
 /// <param name="stream">압축할 <see cref="Stream"/></param>
 /// <returns>압축된 <see cref="MemoryStream"/></returns>
 public static Stream CompressStream(this ICompressor compressor, Stream stream) {
     return new MemoryStream(compressor.Compress(stream.ToBytes()));
 }