From 17afa47672b89ccf6551e2696dc98bb86e3f9c66 Mon Sep 17 00:00:00 2001 From: James Jackson-South Date: Wed, 24 Jan 2018 18:35:43 +1100 Subject: [PATCH] fix ternary casting --- .../Processing/Transforms/TransformHelpers.cs | 24 +++++++++---- .../Transforms/TransformsHelpersTest.cs | 34 +++++++++++++++++++ 2 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 tests/ImageSharp.Tests/Processing/Transforms/TransformsHelpersTest.cs diff --git a/src/ImageSharp/Processing/Transforms/TransformHelpers.cs b/src/ImageSharp/Processing/Transforms/TransformHelpers.cs index 74cbc59d27..bfb06c4707 100644 --- a/src/ImageSharp/Processing/Transforms/TransformHelpers.cs +++ b/src/ImageSharp/Processing/Transforms/TransformHelpers.cs @@ -32,17 +32,29 @@ namespace SixLabors.ImageSharp if (profile.GetValue(ExifTag.PixelXDimension) != null) { profile.RemoveValue(ExifTag.PixelXDimension); - profile.SetValue( - ExifTag.PixelXDimension, - image.Width <= ushort.MaxValue ? (ushort)image.Width : (uint)image.Width); + + if (image.Width <= ushort.MaxValue) + { + profile.SetValue(ExifTag.PixelXDimension, (ushort)image.Width); + } + else + { + profile.SetValue(ExifTag.PixelXDimension, (uint)image.Width); + } } if (profile.GetValue(ExifTag.PixelYDimension) != null) { profile.RemoveValue(ExifTag.PixelYDimension); - profile.SetValue( - ExifTag.PixelYDimension, - image.Height <= ushort.MaxValue ? (ushort)image.Height : (uint)image.Height); + + if (image.Height <= ushort.MaxValue) + { + profile.SetValue(ExifTag.PixelYDimension, (ushort)image.Height); + } + else + { + profile.SetValue(ExifTag.PixelYDimension, (uint)image.Height); + } } } diff --git a/tests/ImageSharp.Tests/Processing/Transforms/TransformsHelpersTest.cs b/tests/ImageSharp.Tests/Processing/Transforms/TransformsHelpersTest.cs new file mode 100644 index 0000000000..c5b6b1ad72 --- /dev/null +++ b/tests/ImageSharp.Tests/Processing/Transforms/TransformsHelpersTest.cs @@ -0,0 +1,34 @@ +// Copyright (c) Six Labors and contributors. +// Licensed under the Apache License, Version 2.0. + +using SixLabors.ImageSharp.MetaData.Profiles.Exif; +using SixLabors.ImageSharp.PixelFormats; +using Xunit; + +namespace SixLabors.ImageSharp.Tests.Processing.Transforms +{ + public class TransformsHelpersTest + { + [Fact] + public void HelperCanChangeExifDataType() + { + int xy = 1; + + using (var img = new Image(xy, xy)) + { + var profile = new ExifProfile(); + img.MetaData.ExifProfile = profile; + profile.SetValue(ExifTag.PixelXDimension, (uint)xy); + profile.SetValue(ExifTag.PixelYDimension, (uint)xy); + + Assert.Equal(ExifDataType.Long, profile.GetValue(ExifTag.PixelXDimension).DataType); + Assert.Equal(ExifDataType.Long, profile.GetValue(ExifTag.PixelYDimension).DataType); + + TransformHelpers.UpdateDimensionalMetData(img); + + Assert.Equal(ExifDataType.Short, profile.GetValue(ExifTag.PixelXDimension).DataType); + Assert.Equal(ExifDataType.Short, profile.GetValue(ExifTag.PixelYDimension).DataType); + } + } + } +} \ No newline at end of file