Browse Source

Saturation

pull/232/head
James Jackson-South 9 years ago
parent
commit
7d197c7ef3
  1. 53
      tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs
  2. 57
      tests/ImageSharp.Tests/Processors/Filters/SaturationTest.cs

53
tests/ImageSharp.Tests/Processing/ColorMatrix/SaturationTest.cs

@ -0,0 +1,53 @@
// <copyright file="SaturationTest.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
namespace ImageSharp.Tests.Processing.ColorMatrix
{
using ImageSharp.PixelFormats;
using Xunit;
public class SaturationTest : FileTestBase
{
public static readonly TheoryData<int> SaturationValues
= new TheoryData<int>
{
50 ,
-50 ,
};
[Theory]
[WithFileCollection(nameof(AllBmpFiles), nameof(SaturationValues), StandardPixelTypes)]
public void ImageShouldApplySaturationFilter<TPixel>(TestImageProvider<TPixel> provider, int value)
where TPixel : struct, IPixel<TPixel>
{
using (Image<TPixel> image = provider.GetImage())
{
image.Saturation(value)
.DebugSave(provider, value, Extensions.Bmp);
}
}
[Theory]
[WithFileCollection(nameof(AllBmpFiles), nameof(SaturationValues), StandardPixelTypes)]
public void ImageShouldApplySaturationFilterInBox<TPixel>(TestImageProvider<TPixel> provider, int value)
where TPixel : struct, IPixel<TPixel>
{
using (Image<TPixel> source = provider.GetImage())
using (var image = new Image<TPixel>(source))
{
var bounds = new Rectangle(10, 10, image.Width / 2, image.Height / 2);
image.Saturation(value, bounds)
.DebugSave(provider, value, Extensions.Bmp);
// Draw identical shapes over the bounded and compare to ensure changes are constrained.
image.Fill(NamedColors<TPixel>.HotPink, bounds);
source.Fill(NamedColors<TPixel>.HotPink, bounds);
ImageComparer.CheckSimilarity(image, source);
}
}
}
}

57
tests/ImageSharp.Tests/Processors/Filters/SaturationTest.cs

@ -1,57 +0,0 @@
// <copyright file="SaturationTest.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
namespace ImageSharp.Tests
{
using System.IO;
using ImageSharp.PixelFormats;
using Xunit;
public class SaturationTest : FileTestBase
{
public static readonly TheoryData<int> SaturationValues
= new TheoryData<int>
{
50 ,
-50 ,
};
[Theory]
[MemberData(nameof(SaturationValues))]
public void ImageShouldApplySaturationFilter(int value)
{
string path = CreateOutputDirectory("Saturation");
foreach (TestFile file in Files)
{
string filename = file.GetFileName(value);
using (Image<Rgba32> image = file.CreateImage())
using (FileStream output = File.OpenWrite($"{path}/{filename}"))
{
image.Saturation(value).Save(output);
}
}
}
[Theory]
[MemberData(nameof(SaturationValues))]
public void ImageShouldApplySaturationFilterInBox(int value)
{
string path = this.CreateOutputDirectory("Saturation");
foreach (TestFile file in Files)
{
string filename = file.GetFileName(value + "-InBox");
using (Image<Rgba32> image = file.CreateImage())
using (FileStream output = File.OpenWrite($"{path}/{filename}"))
{
image.Saturation(value, new Rectangle(10, 10, image.Width / 2, image.Height / 2)).Save(output);
}
}
}
}
}
Loading…
Cancel
Save