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(); } } }
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(); } } }
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(); } } }