Ejemplo n.º 1
0
        public unsafe void CompressSpanToSpan(
            [CombinatorialValues(
                 TJSubsamplingOption.Gray,
                 TJSubsamplingOption.Chrominance411,
                 TJSubsamplingOption.Chrominance420,
                 TJSubsamplingOption.Chrominance440,
                 TJSubsamplingOption.Chrominance422,
                 TJSubsamplingOption.Chrominance444)]
            TJSubsamplingOption options,
            [CombinatorialValues(1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)]
            int quality)
        {
            foreach (var bitmap in TestUtils.GetTestImages("*.bmp"))
            {
                try
                {
                    var stride      = bitmap.RowBytes;
                    var width       = bitmap.Width;
                    var height      = bitmap.Height;
                    var pixelFormat = TJSkiaUtils.ConvertPixelFormat(bitmap.ColorType);

                    var buf = bitmap.GetPixelSpan();

                    Trace.WriteLine($"Options: {options}; Quality: {quality}");
                    Span <byte> target = new byte[this.compressor.GetBufferSize(width, height, options)];

                    this.compressor.Compress(buf, target, stride, width, height, pixelFormat, options, quality, TJFlags.None);
                }
                finally
                {
                    bitmap.Dispose();
                }
            }
        }
Ejemplo n.º 2
0
        public void CompressByteArray(
            [CombinatorialValues(
                 TJSubsamplingOption.Gray,
                 TJSubsamplingOption.Chrominance411,
                 TJSubsamplingOption.Chrominance420,
                 TJSubsamplingOption.Chrominance440,
                 TJSubsamplingOption.Chrominance422,
                 TJSubsamplingOption.Chrominance444)]
            TJSubsamplingOption options,
            [CombinatorialValues(1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)]
            int quality)
        {
            foreach (var bitmap in TestUtils.GetTestImages("*.bmp"))
            {
                try
                {
                    var stride      = bitmap.RowBytes;
                    var width       = bitmap.Width;
                    var height      = bitmap.Height;
                    var pixelFormat = TJSkiaUtils.ConvertPixelFormat(bitmap.ColorType);

                    var buf = bitmap.GetPixelSpan().ToArray();

                    Trace.WriteLine($"Options: {options}; Quality: {quality}");
                    var result = this.compressor.Compress(buf, stride, width, height, pixelFormat, options, quality, TJFlags.None);
                    Assert.NotNull(result);
                }
                finally
                {
                    bitmap.Dispose();
                }
            }
        }
Ejemplo n.º 3
0
 public void CompressIntPtr(
     [CombinatorialValues(
          TJSubsamplingOption.Gray,
          TJSubsamplingOption.Chrominance411,
          TJSubsamplingOption.Chrominance420,
          TJSubsamplingOption.Chrominance440,
          TJSubsamplingOption.Chrominance422,
          TJSubsamplingOption.Chrominance444)]
     TJSubsamplingOption options,
     [CombinatorialValues(1, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)]
     int quality)
 {
     foreach (var bitmap in TestUtils.GetTestImages("*.bmp"))
     {
         try
         {
             Trace.WriteLine($"Options: {options}; Quality: {quality}");
             var result = this.compressor.Compress(bitmap.GetPixels(), bitmap.RowBytes, bitmap.Width, bitmap.Height, TJSkiaUtils.ConvertPixelFormat(bitmap.ColorType), options, quality, TJFlags.None);
             Assert.NotNull(result);
         }
         finally
         {
             bitmap.Dispose();
         }
     }
 }