Browse Source

fix ternary casting

af/merge-core
James Jackson-South 8 years ago
parent
commit
17afa47672
  1. 24
      src/ImageSharp/Processing/Transforms/TransformHelpers.cs
  2. 34
      tests/ImageSharp.Tests/Processing/Transforms/TransformsHelpersTest.cs

24
src/ImageSharp/Processing/Transforms/TransformHelpers.cs

@ -32,17 +32,29 @@ namespace SixLabors.ImageSharp
if (profile.GetValue(ExifTag.PixelXDimension) != null) if (profile.GetValue(ExifTag.PixelXDimension) != null)
{ {
profile.RemoveValue(ExifTag.PixelXDimension); profile.RemoveValue(ExifTag.PixelXDimension);
profile.SetValue(
ExifTag.PixelXDimension, if (image.Width <= ushort.MaxValue)
image.Width <= ushort.MaxValue ? (ushort)image.Width : (uint)image.Width); {
profile.SetValue(ExifTag.PixelXDimension, (ushort)image.Width);
}
else
{
profile.SetValue(ExifTag.PixelXDimension, (uint)image.Width);
}
} }
if (profile.GetValue(ExifTag.PixelYDimension) != null) if (profile.GetValue(ExifTag.PixelYDimension) != null)
{ {
profile.RemoveValue(ExifTag.PixelYDimension); profile.RemoveValue(ExifTag.PixelYDimension);
profile.SetValue(
ExifTag.PixelYDimension, if (image.Height <= ushort.MaxValue)
image.Height <= ushort.MaxValue ? (ushort)image.Height : (uint)image.Height); {
profile.SetValue(ExifTag.PixelYDimension, (ushort)image.Height);
}
else
{
profile.SetValue(ExifTag.PixelYDimension, (uint)image.Height);
}
} }
} }

34
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<Alpha8>(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);
}
}
}
}
Loading…
Cancel
Save