|
|
|
@ -7,6 +7,7 @@ using System.Threading.Tasks; |
|
|
|
using SixLabors.ImageSharp.Advanced; |
|
|
|
using SixLabors.ImageSharp.Helpers; |
|
|
|
using SixLabors.ImageSharp.Memory; |
|
|
|
using SixLabors.ImageSharp.MetaData.Profiles.Exif; |
|
|
|
using SixLabors.ImageSharp.PixelFormats; |
|
|
|
using SixLabors.Primitives; |
|
|
|
|
|
|
|
@ -87,6 +88,30 @@ namespace SixLabors.ImageSharp.Processing.Processors |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <inheritdoc/>
|
|
|
|
protected override void AfterImageApply(Image<TPixel> source, Rectangle sourceRectangle) |
|
|
|
{ |
|
|
|
ExifProfile profile = source.MetaData.ExifProfile; |
|
|
|
if (profile == null) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (MathF.Abs(this.Angle) < Constants.Epsilon) |
|
|
|
{ |
|
|
|
// No need to do anything so return.
|
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
profile.RemoveValue(ExifTag.Orientation); |
|
|
|
|
|
|
|
if (this.Expand && profile.GetValue(ExifTag.PixelXDimension) != null) |
|
|
|
{ |
|
|
|
profile.SetValue(ExifTag.PixelXDimension, source.Width); |
|
|
|
profile.SetValue(ExifTag.PixelYDimension, source.Height); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// Rotates the images with an optimized method when the angle is 90, 180 or 270 degrees.
|
|
|
|
/// </summary>
|
|
|
|
|