예제 #1
0
 public RawImageData Decode(byte[] data)
 {
     if (data == null || data.Length == 0)
     {
         throw new ArgumentNullException("data");
     }
     return(WsqCodec.Decode(data));
 }
예제 #2
0
        public byte[] EncodeGdi(SD.Bitmap image, float bitrate = WsqCodec.Constants.DefaultBitrate, bool autoConvertToGrayscale = true)
        {
            if (image == null)
            {
                throw new ArgumentNullException("image");
            }

            RawImageData data = null;

            if (autoConvertToGrayscale)
            {
                using (var source = Conversions.To8bppBitmap(image))
                    data = Conversions.GdiImageToImageInfo(source);
            }
            else
            {
                data = Conversions.GdiImageToImageInfo(image);
            }

            return(WsqCodec.Encode(data, bitrate, Comment));
        }
예제 #3
0
        public byte[] EncodeWpf(SWMI.BitmapSource image, float bitrate = WsqCodec.Constants.DefaultBitrate, bool autoConvertToGrayscale = true)
        {
            if (image == null)
            {
                throw new ArgumentNullException("image");
            }

            SWMI.BitmapSource source = null;
            if (autoConvertToGrayscale)
            {
                source = Conversions.ToGray8BitmapSource(image);
            }
            else
            {
                source = image;
            }

            var data = Conversions.WpfImageToImageInfo(source);

            return(WsqCodec.Encode(data, bitrate, Comment));
        }
예제 #4
0
 /// <summary>
 /// Initializes the <see cref="Constants"/> class.
 /// </summary>
 static Constants()
 {
     DefaultCompressionRatio = WsqCodec.BitrateToCompressionRatio(DefaultBitrate);
     DefaultQuality          = WsqCodec.CompressionRatioToQuality(DefaultCompressionRatio);
 }
예제 #5
0
 public byte[] EncodeCompressionRatioWpf(SWMI.BitmapSource image, float compressionRatio, bool autoConvertToGrayscale = true)
 {
     return(EncodeWpf(image, WsqCodec.CompressionRatioToBitrate(compressionRatio), autoConvertToGrayscale));
 }
예제 #6
0
 public byte[] EncodeQualityWpf(SWMI.BitmapSource image, int quality, bool autoConvertToGrayscale = true)
 {
     return(EncodeCompressionRatioWpf(image, WsqCodec.QualityToCompressionRatio(quality), autoConvertToGrayscale));
 }
예제 #7
0
 public byte[] EncodeCompressionRatioGdi(SD.Bitmap image, float compressionRatio, bool autoConvertToGrayscale = true)
 {
     return(EncodeGdi(image, WsqCodec.CompressionRatioToBitrate(compressionRatio), autoConvertToGrayscale));
 }
예제 #8
0
 public byte[] EncodeQualityGdi(SD.Bitmap image, int quality, bool autoConvertToGrayscale = true)
 {
     return(EncodeCompressionRatioGdi(image, WsqCodec.QualityToCompressionRatio(quality), autoConvertToGrayscale));
 }
예제 #9
0
 public byte[] Encode(RawImageData image, float bitrate = WsqCodec.Constants.DefaultBitrate)
 {
     return(WsqCodec.Encode(image, bitrate, Comment));
 }
예제 #10
0
 public byte[] EncodeCompressionRatio(RawImageData image, float compressionRatio)
 {
     return(Encode(image, WsqCodec.CompressionRatioToBitrate(compressionRatio)));
 }
예제 #11
0
 public byte[] EncodeQuality(RawImageData image, int quality)
 {
     return(EncodeCompressionRatio(image, WsqCodec.QualityToCompressionRatio(quality)));
 }