|
|
|
@ -35,7 +35,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
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 }))) |
|
|
|
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
|
|
|
|
@ -62,8 +62,8 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
{ |
|
|
|
image.Save(outputStream, new JpegEncoder() |
|
|
|
{ |
|
|
|
Subsample = subSample, |
|
|
|
Quality = quality |
|
|
|
Subsample = subSample, |
|
|
|
Quality = quality |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -83,7 +83,7 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
{ |
|
|
|
using (MemoryStream memStream = new MemoryStream()) |
|
|
|
{ |
|
|
|
input.Save(memStream, options); |
|
|
|
input.Save(memStream, options); |
|
|
|
|
|
|
|
memStream.Position = 0; |
|
|
|
using (Image<Rgba32> output = Image.Load<Rgba32>(memStream)) |
|
|
|
@ -118,5 +118,51 @@ namespace SixLabors.ImageSharp.Tests.Formats.Jpg |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Encode_Quality_0_And_1_Are_Identical() |
|
|
|
{ |
|
|
|
var options = new JpegEncoder |
|
|
|
{ |
|
|
|
Quality = 0 |
|
|
|
}; |
|
|
|
|
|
|
|
var testFile = TestFile.Create(TestImages.Jpeg.Baseline.Calliphora); |
|
|
|
|
|
|
|
using (Image<Rgba32> input = testFile.CreateImage()) |
|
|
|
using (var memStream0 = new MemoryStream()) |
|
|
|
using (var memStream1 = new MemoryStream()) |
|
|
|
{ |
|
|
|
input.SaveAsJpeg(memStream0, options); |
|
|
|
|
|
|
|
options.Quality = 1; |
|
|
|
input.SaveAsJpeg(memStream1, options); |
|
|
|
|
|
|
|
Assert.Equal(memStream0.ToArray(), memStream1.ToArray()); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
[Fact] |
|
|
|
public void Encode_Quality_0_And_100_Are_Not_Identical() |
|
|
|
{ |
|
|
|
var options = new JpegEncoder |
|
|
|
{ |
|
|
|
Quality = 0 |
|
|
|
}; |
|
|
|
|
|
|
|
var testFile = TestFile.Create(TestImages.Jpeg.Baseline.Calliphora); |
|
|
|
|
|
|
|
using (Image<Rgba32> input = testFile.CreateImage()) |
|
|
|
using (var memStream0 = new MemoryStream()) |
|
|
|
using (var memStream1 = new MemoryStream()) |
|
|
|
{ |
|
|
|
input.SaveAsJpeg(memStream0, options); |
|
|
|
|
|
|
|
options.Quality = 100; |
|
|
|
input.SaveAsJpeg(memStream1, options); |
|
|
|
|
|
|
|
Assert.NotEqual(memStream0.ToArray(), memStream1.ToArray()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |