diff --git a/src/ImageSharp/Processing/Processors/Transforms/RotateProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/RotateProcessor.cs
index e3fd36ce69..b59918cea4 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/RotateProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/RotateProcessor.cs
@@ -47,6 +47,7 @@ namespace SixLabors.ImageSharp.Processing.Processors
///
protected override Matrix3x2 GetTransformMatrix()
{
+ // Tansforms are inverted else the output is the opposite of the expected.
Matrix3x2 matrix = Matrix3x2Extensions.CreateRotationDegrees(this.Degrees, PointF.Empty);
Matrix3x2.Invert(matrix, out matrix);
return matrix;
diff --git a/src/ImageSharp/Processing/Processors/Transforms/SkewProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/SkewProcessor.cs
index eb9f068db0..321a6abe16 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/SkewProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/SkewProcessor.cs
@@ -50,6 +50,7 @@ namespace SixLabors.ImageSharp.Processing.Processors
///
protected override Matrix3x2 GetTransformMatrix()
{
+ // Tansforms are inverted else the output is the opposite of the expected.
Matrix3x2 matrix = Matrix3x2Extensions.CreateSkewDegrees(this.DegreesX, this.DegreesY, PointF.Empty);
Matrix3x2.Invert(matrix, out matrix);
return matrix;
diff --git a/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs b/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
index 45e9d4dd5e..6ed8c31dd4 100644
--- a/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
+++ b/src/ImageSharp/Processing/Processors/Transforms/TransformProcessor.cs
@@ -30,6 +30,8 @@ namespace SixLabors.ImageSharp.Processing.Processors
public TransformProcessor(Matrix3x2 matrix, IResampler sampler)
: base(sampler)
{
+
+ // Tansforms are inverted else the output is the opposite of the expected.
Matrix3x2.Invert(matrix, out matrix);
this.TransformMatrix = matrix;
}