mirror of https://github.com/SixLabors/ImageSharp
2 changed files with 52 additions and 35 deletions
@ -1,35 +0,0 @@ |
|||||
using SixLabors.ImageSharp.Formats.Jpeg; |
|
||||
using SixLabors.ImageSharp.PixelFormats; |
|
||||
using SixLabors.ImageSharp.Processing; |
|
||||
using SixLabors.Primitives; |
|
||||
|
|
||||
using Xunit; |
|
||||
|
|
||||
namespace SixLabors.ImageSharp.Tests |
|
||||
{ |
|
||||
/// <summary>
|
|
||||
/// Might be useful to catch complex bugs
|
|
||||
/// </summary>
|
|
||||
public class ComplexIntegrationTests |
|
||||
{ |
|
||||
[Theory] |
|
||||
[WithFile(TestImages.Jpeg.Baseline.Snake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio420)] |
|
||||
[WithFile(TestImages.Jpeg.Baseline.Lake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio420)] |
|
||||
[WithFile(TestImages.Jpeg.Baseline.Snake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio444)] |
|
||||
[WithFile(TestImages.Jpeg.Baseline.Lake, PixelTypes.Rgba32, 75, JpegSubsample.Ratio444)] |
|
||||
public void LoadResizeSave<TPixel>(TestImageProvider<TPixel> provider, int quality, JpegSubsample subsample) |
|
||||
where TPixel : struct, IPixel<TPixel> |
|
||||
{ |
|
||||
using (Image<TPixel> image = provider.GetImage(x => x.Resize(new ResizeOptions { Size = new Size(150, 100), Mode = ResizeMode.Max }))) |
|
||||
{ |
|
||||
|
|
||||
image.MetaData.ExifProfile = null; // Reduce the size of the file
|
|
||||
JpegEncoder options = new JpegEncoder { Subsample = subsample, Quality = quality }; |
|
||||
|
|
||||
provider.Utility.TestName += $"{subsample}_Q{quality}"; |
|
||||
provider.Utility.SaveTestOutputFile(image, "png"); |
|
||||
provider.Utility.SaveTestOutputFile(image, "jpg", options); |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
} |
|
||||
@ -0,0 +1,52 @@ |
|||||
|
using System.IO; |
||||
|
|
||||
|
using SixLabors.ImageSharp.Formats.Jpeg; |
||||
|
using SixLabors.ImageSharp.PixelFormats; |
||||
|
using SixLabors.ImageSharp.Processing; |
||||
|
using SixLabors.Primitives; |
||||
|
|
||||
|
using Xunit; |
||||
|
using Xunit.Abstractions; |
||||
|
|
||||
|
namespace SixLabors.ImageSharp.Tests |
||||
|
{ |
||||
|
public class ProfilingBenchmarks : MeasureFixture |
||||
|
{ |
||||
|
public const string SkipProfilingTests = |
||||
|
#if false
|
||||
|
null; |
||||
|
#else
|
||||
|
"Profiling benchmark, enable manually!"; |
||||
|
#endif
|
||||
|
|
||||
|
|
||||
|
public ProfilingBenchmarks(ITestOutputHelper output) |
||||
|
: base(output) |
||||
|
{ |
||||
|
} |
||||
|
|
||||
|
[Theory(Skip = SkipProfilingTests)] |
||||
|
[InlineData(TestImages.Jpeg.Baseline.Jpeg420Exif)] |
||||
|
public void LoadResizeSave(string imagePath) |
||||
|
{ |
||||
|
var configuration = Configuration.CreateDefaultInstance(); |
||||
|
configuration.MaxDegreeOfParallelism = 1; |
||||
|
|
||||
|
byte[] imageBytes = TestFile.Create(imagePath).Bytes; |
||||
|
|
||||
|
using (var ms = new MemoryStream()) |
||||
|
{ |
||||
|
this.Measure(30, |
||||
|
() => |
||||
|
{ |
||||
|
using (var image = Image.Load(configuration, imageBytes)) |
||||
|
{ |
||||
|
image.Mutate(x => x.Resize(image.Size() / 4)); |
||||
|
image.SaveAsJpeg(ms); |
||||
|
} |
||||
|
ms.Seek(0, SeekOrigin.Begin); |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue