From 562b3b9f4a905e3d19a4a502f878b51e818882a3 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 22 Apr 2020 22:57:56 +0100 Subject: [PATCH] Check determinant and update error message. --- src/ImageSharp/Processing/AffineTransformBuilder.cs | 4 ++-- src/ImageSharp/Processing/ProjectiveTransformBuilder.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ImageSharp/Processing/AffineTransformBuilder.cs b/src/ImageSharp/Processing/AffineTransformBuilder.cs index c7007679fc..d793c67a2b 100644 --- a/src/ImageSharp/Processing/AffineTransformBuilder.cs +++ b/src/ImageSharp/Processing/AffineTransformBuilder.cs @@ -287,9 +287,9 @@ namespace SixLabors.ImageSharp.Processing matrix *= factory(size); } - if (TransformUtilities.IsNaN(matrix)) + if (TransformUtilities.IsNaN(matrix) || matrix.GetDeterminant() == 0) { - throw new DegenerateTransformException("Matrix is NaN. Check input values."); + throw new DegenerateTransformException("Matrix is degenerate. Check input values."); } return matrix; diff --git a/src/ImageSharp/Processing/ProjectiveTransformBuilder.cs b/src/ImageSharp/Processing/ProjectiveTransformBuilder.cs index a407074aa2..0535eaeb1c 100644 --- a/src/ImageSharp/Processing/ProjectiveTransformBuilder.cs +++ b/src/ImageSharp/Processing/ProjectiveTransformBuilder.cs @@ -303,9 +303,9 @@ namespace SixLabors.ImageSharp.Processing matrix *= factory(size); } - if (TransformUtilities.IsNaN(matrix)) + if (TransformUtilities.IsNaN(matrix) || matrix.GetDeterminant() == 0) { - throw new DegenerateTransformException("Matrix is NaN. Check input values."); + throw new DegenerateTransformException("Matrix is degenerate. Check input values."); } return matrix;