diff --git a/src/ImageProcessor/Filters/ColorMatrix/BlackWhite.cs b/src/ImageProcessor/Filters/ColorMatrix/BlackWhite.cs
index 153e84de62..e1fc20b70d 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/BlackWhite.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/BlackWhite.cs
@@ -5,6 +5,8 @@
namespace ImageProcessor.Filters
{
+ using System.Numerics;
+
///
/// Converts the colors of the image to their black and white equivalent.
///
@@ -12,23 +14,28 @@ namespace ImageProcessor.Filters
{
///
/// The BlackWhite matrix.
- /// TODO: Calculate a matrix that works in the linear color space.
///
- private static readonly ColorMatrix Matrix = new ColorMatrix(
- new[]
- {
- new[] { 1.5f, 1.5f, 1.5f, 0, 0 },
- new[] { 1.5f, 1.5f, 1.5f, 0, 0 },
- new[] { 1.5f, 1.5f, 1.5f, 0, 0 },
- new float[] { 0, 0, 0, 1, 0 },
- new float[] { -1, -1, -1, 0, 1 }
- });
+ private static readonly Matrix4x4 Matrix = new Matrix4x4()
+ {
+ M11 = 1.5f,
+ M12 = 1.5f,
+ M13 = 1.5f,
+ M21 = 1.5f,
+ M22 = 1.5f,
+ M23 = 1.5f,
+ M31 = 1.5f,
+ M32 = 1.5f,
+ M33 = 1.5f,
+ M41 = -1f,
+ M42 = -1f,
+ M43 = -1f,
+ };
///
/// Initializes a new instance of the class.
///
public BlackWhite()
- : base(Matrix, false)
+ : base(Matrix)
{
}
}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/ColorMatrix.cs b/src/ImageProcessor/Filters/ColorMatrix/ColorMatrix.cs
deleted file mode 100644
index 0cab8e1ef6..0000000000
--- a/src/ImageProcessor/Filters/ColorMatrix/ColorMatrix.cs
+++ /dev/null
@@ -1,273 +0,0 @@
-// --------------------------------------------------------------------------------------------------------------------
-//
-// Copyright (c) James South and contributors.
-// Licensed under the Apache License, Version 2.0.
-//
-// --------------------------------------------------------------------------------------------------------------------
-
-namespace ImageProcessor.Filters
-{
- ///
- /// Defines a 5x5 matrix that contains the coordinates for the RGBAW color space.
- ///
- public sealed class ColorMatrix
- {
- ///
- /// Initializes a new instance of the class.
- ///
- public ColorMatrix()
- {
- // Setup the identity matrix by default
- this.Matrix00 = 1.0f;
- this.Matrix11 = 1.0f;
- this.Matrix22 = 1.0f;
- this.Matrix33 = 1.0f;
- this.Matrix44 = 1.0f;
- }
-
- ///
- /// Initializes a new instance of the class with the
- /// elements in the specified matrix.
- ///
- ///
- /// The elements defining the new Color Matrix.
- ///
- public ColorMatrix(float[][] colorMatrix)
- {
- this.SetMatrix(colorMatrix);
- }
-
- ///
- /// Gets or sets the element at the 0th row and 0th column of this .
- ///
- public float Matrix00 { get; set; }
-
- ///
- /// Gets or sets the element at the 0th row and 1st column of this .
- ///
- public float Matrix01 { get; set; }
-
- ///
- /// Gets or sets the element at the 0th row and 2nd column of this .
- ///
- public float Matrix02 { get; set; }
-
- ///
- /// Gets or sets the element at the 0th row and 3rd column of this .
- ///
- public float Matrix03 { get; set; }
-
- ///
- /// Gets or sets the element at the 0th row and 4th column of this .
- ///
- public float Matrix04 { get; set; }
-
- ///
- /// Gets or sets the element at the 1st row and 0th column of this .
- ///
- public float Matrix10 { get; set; }
-
- ///
- /// Gets or sets the element at the 1st row and 1st column of this .
- ///
- public float Matrix11 { get; set; }
-
- ///
- /// Gets or sets the element at the 1st row and 2nd column of this .
- ///
- public float Matrix12 { get; set; }
-
- ///
- /// Gets or sets the element at the 1st row and 3rd column of this .
- ///
- public float Matrix13 { get; set; }
-
- ///
- /// Gets or sets the element at the 1st row and 4th column of this .
- ///
- public float Matrix14 { get; set; }
-
- ///
- /// Gets or sets the element at the 2nd row and 0th column of this .
- ///
- public float Matrix20 { get; set; }
-
- ///
- /// Gets or sets the element at the 2nd row and 1st column of this .
- ///
- public float Matrix21 { get; set; }
-
- ///
- /// Gets or sets the element at the 2nd row and 2nd column of this .
- ///
- public float Matrix22 { get; set; }
-
- ///
- /// Gets or sets the element at the 2nd row and 3rd column of this .
- ///
- public float Matrix23 { get; set; }
-
- ///
- /// Gets or sets the element at the 2nd row and 4th column of this .
- ///
- public float Matrix24 { get; set; }
-
- ///
- /// Gets or sets the element at the 3rd row and 0th column of this .
- ///
- public float Matrix30 { get; set; }
-
- ///
- /// Gets or sets the element at the 3rd row and 1st column of this .
- ///
- public float Matrix31 { get; set; }
-
- ///
- /// Gets or sets the element at the 3rd row and 2nd column of this .
- ///
- public float Matrix32 { get; set; }
-
- ///
- /// Gets or sets the element at the 3rd row and 3rd column of this .
- ///
- public float Matrix33 { get; set; }
-
- ///
- /// Gets or sets the element at the 3rd row and 4th column of this .
- ///
- public float Matrix34 { get; set; }
-
- ///
- /// Gets or sets the element at the 4th row and 0th column of this .
- ///
- public float Matrix40 { get; set; }
-
- ///
- /// Gets or sets the element at the 4th row and 1st column of this .
- ///
- public float Matrix41 { get; set; }
-
- ///
- /// Gets or sets the element at the 4th row and 2nd column of this .
- ///
- public float Matrix42 { get; set; }
-
- ///
- /// Gets or sets the element at the 4th row and 3rd column of this .
- ///
- public float Matrix43 { get; set; }
-
- ///
- /// Gets or sets the element at the 4th row and 4th column of this .
- ///
- public float Matrix44 { get; set; }
-
- ///
- /// Gets or sets the value of the specified element of this .
- ///
- ///
- /// The row index.
- ///
- ///
- /// The column index.
- ///
- ///
- /// The .
- ///
- public float this[int row, int column]
- {
- get
- {
- return this.GetMatrix()[row][column];
- }
-
- set
- {
- float[][] tempMatrix = this.GetMatrix();
-
- tempMatrix[row][column] = value;
-
- this.SetMatrix(tempMatrix);
- }
- }
-
- ///
- /// Sets the values of this to the values contained within the elements.
- ///
- ///
- /// The new color matrix.
- ///
- internal void SetMatrix(float[][] colorMatrix)
- {
- this.Matrix00 = colorMatrix[0][0];
- this.Matrix01 = colorMatrix[0][1];
- this.Matrix02 = colorMatrix[0][2];
- this.Matrix03 = colorMatrix[0][3];
- this.Matrix04 = colorMatrix[0][4];
- this.Matrix10 = colorMatrix[1][0];
- this.Matrix11 = colorMatrix[1][1];
- this.Matrix12 = colorMatrix[1][2];
- this.Matrix13 = colorMatrix[1][3];
- this.Matrix14 = colorMatrix[1][4];
- this.Matrix20 = colorMatrix[2][0];
- this.Matrix21 = colorMatrix[2][1];
- this.Matrix22 = colorMatrix[2][2];
- this.Matrix23 = colorMatrix[2][3];
- this.Matrix24 = colorMatrix[2][4];
- this.Matrix30 = colorMatrix[3][0];
- this.Matrix31 = colorMatrix[3][1];
- this.Matrix32 = colorMatrix[3][2];
- this.Matrix33 = colorMatrix[3][3];
- this.Matrix34 = colorMatrix[3][4];
- this.Matrix40 = colorMatrix[4][0];
- this.Matrix41 = colorMatrix[4][1];
- this.Matrix42 = colorMatrix[4][2];
- this.Matrix43 = colorMatrix[4][3];
- this.Matrix44 = colorMatrix[4][4];
- }
-
- ///
- /// Gets this .
- ///
- ///
- /// The .
- ///
- internal float[][] GetMatrix()
- {
- float[][] returnMatrix = new float[5][];
-
- for (int i = 0; i < 5; i++)
- {
- returnMatrix[i] = new float[5];
- }
-
- returnMatrix[0][0] = this.Matrix00;
- returnMatrix[0][1] = this.Matrix01;
- returnMatrix[0][2] = this.Matrix02;
- returnMatrix[0][3] = this.Matrix03;
- returnMatrix[0][4] = this.Matrix04;
- returnMatrix[1][0] = this.Matrix10;
- returnMatrix[1][1] = this.Matrix11;
- returnMatrix[1][2] = this.Matrix12;
- returnMatrix[1][3] = this.Matrix13;
- returnMatrix[1][4] = this.Matrix14;
- returnMatrix[2][0] = this.Matrix20;
- returnMatrix[2][1] = this.Matrix21;
- returnMatrix[2][2] = this.Matrix22;
- returnMatrix[2][3] = this.Matrix23;
- returnMatrix[2][4] = this.Matrix24;
- returnMatrix[3][0] = this.Matrix30;
- returnMatrix[3][1] = this.Matrix31;
- returnMatrix[3][2] = this.Matrix32;
- returnMatrix[3][3] = this.Matrix33;
- returnMatrix[3][4] = this.Matrix34;
- returnMatrix[4][0] = this.Matrix40;
- returnMatrix[4][1] = this.Matrix41;
- returnMatrix[4][2] = this.Matrix42;
- returnMatrix[4][3] = this.Matrix43;
- returnMatrix[4][4] = this.Matrix44;
-
- return returnMatrix;
- }
- }
-}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/ColorMatrixFilter.cs b/src/ImageProcessor/Filters/ColorMatrix/ColorMatrixFilter.cs
index 17a49b8fb7..8c58bc78b9 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/ColorMatrixFilter.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/ColorMatrixFilter.cs
@@ -5,6 +5,7 @@
namespace ImageProcessor.Filters
{
+ using System.Numerics;
using System.Threading.Tasks;
///
@@ -15,33 +16,25 @@ namespace ImageProcessor.Filters
///
/// Initializes a new instance of the class.
///
- /// The matrix to apply.
- /// Whether to gamma adjust the colors before applying the matrix.
- public ColorMatrixFilter(ColorMatrix matrix, bool gammaAdjust)
+ /// The to apply.
+ public ColorMatrixFilter(Matrix4x4 matrix)
{
this.Value = matrix;
- this.GammaAdjust = gammaAdjust;
}
///
/// Gets the matrix value.
///
- public ColorMatrix Value { get; }
-
- ///
- /// Gets a value indicating whether to gamma adjust the colors before applying the matrix.
- ///
- public bool GammaAdjust { get; }
+ public Matrix4x4 Value { get; }
///
protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY)
{
- bool gamma = this.GammaAdjust;
int sourceY = sourceRectangle.Y;
int sourceBottom = sourceRectangle.Bottom;
int startX = sourceRectangle.X;
int endX = sourceRectangle.Right;
- ColorMatrix matrix = this.Value;
+ Matrix4x4 matrix = this.Value;
Parallel.For(
startY,
@@ -52,7 +45,7 @@ namespace ImageProcessor.Filters
{
for (int x = startX; x < endX; x++)
{
- target[x, y] = ApplyMatrix(source[x, y], matrix, gamma);
+ target[x, y] = ApplyMatrix(source[x, y], matrix);
}
}
});
@@ -63,29 +56,22 @@ namespace ImageProcessor.Filters
///
/// The source color.
/// The matrix.
- /// Whether to perform gamma adjustments.
///
/// The .
///
- private static Color ApplyMatrix(Color color, ColorMatrix matrix, bool gamma)
+ private static Color ApplyMatrix(Color color, Matrix4x4 matrix)
{
- if (gamma)
- {
- color = PixelOperations.ToLinear(color);
- }
+ color = PixelOperations.ToLinear(color);
float sr = color.R;
float sg = color.G;
float sb = color.B;
- float sa = color.A;
- // TODO: Investigate RGBAW
- color.R = (sr * matrix.Matrix00) + (sg * matrix.Matrix10) + (sb * matrix.Matrix20) + (sa * matrix.Matrix30) + matrix.Matrix40;
- color.G = (sr * matrix.Matrix01) + (sg * matrix.Matrix11) + (sb * matrix.Matrix21) + (sa * matrix.Matrix31) + matrix.Matrix41;
- color.B = (sr * matrix.Matrix02) + (sg * matrix.Matrix12) + (sb * matrix.Matrix22) + (sa * matrix.Matrix32) + matrix.Matrix42;
- color.A = (sr * matrix.Matrix03) + (sg * matrix.Matrix13) + (sb * matrix.Matrix23) + (sa * matrix.Matrix33) + matrix.Matrix43;
+ color.R = (sr * matrix.M11) + (sg * matrix.M21) + (sb * matrix.M31) + matrix.M41;
+ color.G = (sr * matrix.M12) + (sg * matrix.M22) + (sb * matrix.M32) + matrix.M42;
+ color.B = (sr * matrix.M13) + (sg * matrix.M23) + (sb * matrix.M33) + matrix.M43;
- return gamma ? PixelOperations.ToSrgb(color) : color;
+ return PixelOperations.ToSrgb(color);
}
}
}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt601.cs b/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt601.cs
index d10264c932..7c9a6b7d98 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt601.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt601.cs
@@ -11,7 +11,7 @@ namespace ImageProcessor.Filters
/// Converts the colors of the image to greyscale applying the formula as specified by
/// ITU-R Recommendation BT.601 .
///
- public class GreyscaleBt601 : MatrixFilter
+ public class GreyscaleBt601 : ColorMatrixFilter
{
///
/// The greyscale matrix.
diff --git a/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt709.cs b/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt709.cs
index 8f59be7a24..b2f1834c7e 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt709.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/GreyscaleBt709.cs
@@ -11,7 +11,7 @@ namespace ImageProcessor.Filters
/// Converts the colors of the image to greyscale applying the formula as specified by
/// ITU-R Recommendation BT.709 .
///
- public class GreyscaleBt709 : MatrixFilter
+ public class GreyscaleBt709 : ColorMatrixFilter
{
///
/// The greyscale matrix.
diff --git a/src/ImageProcessor/Filters/ColorMatrix/Kodachrome.cs b/src/ImageProcessor/Filters/ColorMatrix/Kodachrome.cs
new file mode 100644
index 0000000000..4468ec70e1
--- /dev/null
+++ b/src/ImageProcessor/Filters/ColorMatrix/Kodachrome.cs
@@ -0,0 +1,36 @@
+//
+// Copyright (c) James South and contributors.
+// Licensed under the Apache License, Version 2.0.
+//
+
+namespace ImageProcessor.Filters
+{
+ using System.Numerics;
+
+ ///
+ /// Converts the colors of the image recreating an old Kodachrome camera effect.
+ ///
+ public class Kodachrome : ColorMatrixFilter
+ {
+ ///
+ /// The Kodachrome matrix. Purely artistic in composition.
+ ///
+ private static readonly Matrix4x4 Matrix = new Matrix4x4()
+ {
+ M11 = 0.6997023f,
+ M22 = 0.4609577f,
+ M33 = 0.397218f,
+ M41 = 0.005f,
+ M42 = -0.005f,
+ M43 = 0.005f
+ };
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ public Kodachrome()
+ : base(Matrix)
+ {
+ }
+ }
+}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/Lomograph.cs b/src/ImageProcessor/Filters/ColorMatrix/Lomograph.cs
index 895a9f2f91..870c0d4a2f 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/Lomograph.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/Lomograph.cs
@@ -10,30 +10,20 @@ namespace ImageProcessor.Filters
///
/// Converts the colors of the image recreating an old Lomograph effect.
///
- public class Lomograph : MatrixFilter
+ public class Lomograph : ColorMatrixFilter
{
///
/// The Lomograph matrix. Purely artistic in composition.
- /// TODO: Calculate a matrix that works in the linear color space.
///
private static readonly Matrix4x4 Matrix = new Matrix4x4()
{
M11 = 1.5f,
M22 = 1.45f,
- M33 = 1.09f,
+ M33 = 1.11f,
M41 = -.1f,
M42 = .0f,
M43 = -.08f
};
- //private static readonly ColorMatrix Matrix = new ColorMatrix(
- // new[]
- // {
- // new[] { 1.50f, 0, 0, 0, 0 },
- // new[] { 0, 1.45f, 0, 0, 0 },
- // new[] { 0, 0, 1.09f, 0, 0 },
- // new float[] { 0, 0, 0, 1, 0 },
- // new[] { -0.10f, 0.05f, -0.08f, 0, 1 }
- // });
///
/// Initializes a new instance of the class.
diff --git a/src/ImageProcessor/Filters/ColorMatrix/MatrixFilter.cs b/src/ImageProcessor/Filters/ColorMatrix/MatrixFilter.cs
deleted file mode 100644
index 2306af112d..0000000000
--- a/src/ImageProcessor/Filters/ColorMatrix/MatrixFilter.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-//
-// Copyright (c) James South and contributors.
-// Licensed under the Apache License, Version 2.0.
-//
-
-namespace ImageProcessor.Filters
-{
- using System.Numerics;
- using System.Threading.Tasks;
-
- ///
- /// The color matrix filter.
- ///
- public class MatrixFilter : ParallelImageProcessor
- {
- ///
- /// Initializes a new instance of the class.
- ///
- /// The to apply.
- public MatrixFilter(Matrix4x4 matrix)
- {
- this.Value = matrix;
- }
-
- ///
- /// Gets the matrix value.
- ///
- public Matrix4x4 Value { get; }
-
- ///
- protected override void Apply(ImageBase target, ImageBase source, Rectangle targetRectangle, Rectangle sourceRectangle, int startY, int endY)
- {
- int sourceY = sourceRectangle.Y;
- int sourceBottom = sourceRectangle.Bottom;
- int startX = sourceRectangle.X;
- int endX = sourceRectangle.Right;
- Matrix4x4 matrix = this.Value;
-
- Parallel.For(
- startY,
- endY,
- y =>
- {
- if (y >= sourceY && y < sourceBottom)
- {
- for (int x = startX; x < endX; x++)
- {
- target[x, y] = ApplyMatrix(source[x, y], matrix);
- }
- }
- });
- }
-
- ///
- /// Applies the color matrix against the given color.
- ///
- /// The source color.
- /// The matrix.
- ///
- /// The .
- ///
- private static Color ApplyMatrix(Color color, Matrix4x4 matrix)
- {
- color = PixelOperations.ToLinear(color);
-
- float sr = color.R;
- float sg = color.G;
- float sb = color.B;
-
- color.R = (sr * matrix.M11) + (sg * matrix.M21) + (sb * matrix.M31) + matrix.M41;
- color.G = (sr * matrix.M12) + (sg * matrix.M22) + (sb * matrix.M32) + matrix.M42;
- color.B = (sr * matrix.M13) + (sg * matrix.M23) + (sb * matrix.M33) + matrix.M43;
-
- return PixelOperations.ToSrgb(color);
- }
- }
-}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/Polaroid.cs b/src/ImageProcessor/Filters/ColorMatrix/Polaroid.cs
index 2b6b9289d4..875b44b7d1 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/Polaroid.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/Polaroid.cs
@@ -5,6 +5,8 @@
namespace ImageProcessor.Filters
{
+ using System.Numerics;
+
///
/// Converts the colors of the image recreating an old Polaroid effect.
///
@@ -14,21 +16,27 @@ namespace ImageProcessor.Filters
/// The Polaroid matrix. Purely artistic in composition.
/// TODO: Calculate a matrix that works in the linear color space.
///
- private static readonly ColorMatrix Matrix = new ColorMatrix(
- new[]
- {
- new[] { 1.638f, -0.062f, -0.262f, 0, 0 },
- new[] { -0.122f, 1.378f, -0.122f, 0, 0 },
- new[] { 1.016f, -0.016f, 1.383f, 0, 0 },
- new float[] { 0, 0, 0, 1, 0 },
- new[] { 0.06f, -0.05f, -0.05f, 0, 1 }
- });
+ private static readonly Matrix4x4 Matrix = new Matrix4x4()
+ {
+ M11 = 1.538f,
+ M12 = -0.062f,
+ M13 = -0.262f,
+ M21 = -0.022f,
+ M22 = 1.578f,
+ M23 = -0.022f,
+ M31 = .616f,
+ M32 = -.16f,
+ M33 = 1.5831f,
+ M41 = 0.02f,
+ M42 = -0.05f,
+ M43 = -0.05f
+ };
///
/// Initializes a new instance of the class.
///
public Polaroid()
- : base(Matrix, false)
+ : base(Matrix)
{
}
}
diff --git a/src/ImageProcessor/Filters/ColorMatrix/Sepia.cs b/src/ImageProcessor/Filters/ColorMatrix/Sepia.cs
index 8628b8e817..73cc4b312f 100644
--- a/src/ImageProcessor/Filters/ColorMatrix/Sepia.cs
+++ b/src/ImageProcessor/Filters/ColorMatrix/Sepia.cs
@@ -10,7 +10,7 @@ namespace ImageProcessor.Filters
///
/// Converts the colors of the image to their sepia equivalent recreating an old photo effect.
///
- public class Sepia : MatrixFilter
+ public class Sepia : ColorMatrixFilter
{
///
/// The sepia matrix.
diff --git a/src/ImageProcessor/ImageProcessor.csproj b/src/ImageProcessor/ImageProcessor.csproj
index 48cd59e1d3..4c5c260d8d 100644
--- a/src/ImageProcessor/ImageProcessor.csproj
+++ b/src/ImageProcessor/ImageProcessor.csproj
@@ -48,14 +48,13 @@
-
+
+
-
-
diff --git a/src/ImageProcessor/project.lock.json.REMOVED.git-id b/src/ImageProcessor/project.lock.json.REMOVED.git-id
index 24339fed21..dba2656f57 100644
--- a/src/ImageProcessor/project.lock.json.REMOVED.git-id
+++ b/src/ImageProcessor/project.lock.json.REMOVED.git-id
@@ -1 +1 @@
-3f05708641eb3ed085d4689aae4a960eb067fd16
\ No newline at end of file
+eb00c54ee74016c2b70f81963e7e8f83cb2dd54b
\ No newline at end of file
diff --git a/tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs b/tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs
index dfda1ef794..810a872fdc 100644
--- a/tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs
+++ b/tests/ImageProcessor.Tests/Processors/Filters/FilterTests.cs
@@ -22,8 +22,9 @@ namespace ImageProcessor.Tests
//{ "Invert", new Invert() },
//{ "Sepia", new Sepia() },
//{ "BlackWhite", new BlackWhite() },
- { "Lomograph", new Lomograph() },
+ //{ "Lomograph", new Lomograph() },
//{ "Polaroid", new Polaroid() },
+ { "Brownie", new Kodachrome() },
//{ "GreyscaleBt709", new GreyscaleBt709() },
//{ "GreyscaleBt601", new GreyscaleBt601() },
};
diff --git a/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs b/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs
index 6c33ef4c47..d7580defb0 100644
--- a/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs
+++ b/tests/ImageProcessor.Tests/Processors/ProcessorTestBase.cs
@@ -21,6 +21,8 @@ namespace ImageProcessor.Tests
{
//"../../TestImages/Formats/Jpg/Backdrop.jpg",
"../../TestImages/Formats/Jpg/Calliphora.jpg",
+ "../../TestImages/Formats/Jpg/lomo.jpg",
+ "../../TestImages/Formats/Jpg/shaftesbury.jpg",
//"../../TestImages/Formats/Jpg/gamma_dalai_lama_gray.jpg",
//"../../TestImages/Formats/Jpg/greyscale.jpg",
//"../../TestImages/Formats/Bmp/Car.bmp",
diff --git a/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/lomo.jpg b/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/lomo.jpg
new file mode 100644
index 0000000000..23f75c72ee
--- /dev/null
+++ b/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/lomo.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:bdfad9ce367629518c374b27b8ce311d1f0326f61b9a0ed113b5b966dd3dd1bc
+size 45508
diff --git a/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/shaftesbury.jpg.REMOVED.git-id b/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/shaftesbury.jpg.REMOVED.git-id
new file mode 100644
index 0000000000..59372951be
--- /dev/null
+++ b/tests/ImageProcessor.Tests/TestImages/Formats/Jpg/shaftesbury.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+2eabac96326130ba423b3fecb5a163b734278370
\ No newline at end of file