Browse Source

Pass correct output size in ResizeMode.Min #892 (#893)

af/merge-core
Daniil Samoylov 7 years ago
committed by James Jackson-South
parent
commit
c6be724f7e
  1. 2
      src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeHelper.cs
  2. 21
      tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeHelperTests.cs

2
src/ImageSharp/Processing/Processors/Transforms/Resize/ResizeHelper.cs

@ -296,7 +296,7 @@ namespace SixLabors.ImageSharp.Processing.Processors.Transforms
// Don't upscale
if (width > sourceWidth || height > sourceHeight)
{
return (new Size(sourceWidth, sourceWidth), new Rectangle(0, 0, sourceWidth, sourceHeight));
return (new Size(sourceWidth, sourceHeight), new Rectangle(0, 0, sourceWidth, sourceHeight));
}
// Find the shortest distance to go.

21
tests/ImageSharp.Tests/Processing/Processors/Transforms/ResizeHelperTests.cs

@ -1,7 +1,9 @@
// Copyright (c) Six Labors and contributors.
// Licensed under the Apache License, Version 2.0.
using SixLabors.ImageSharp.Processing;
using SixLabors.ImageSharp.Processing.Processors.Transforms;
using SixLabors.Primitives;
using Xunit;
@ -31,5 +33,24 @@ namespace SixLabors.ImageSharp.Tests.Processing.Processors.Transforms
int actualCount = ResizeHelper.CalculateResizeWorkerHeightInWindowBands(windowDiameter, width, sizeLimitHintInBytes);
Assert.Equal(expectedCount, actualCount);
}
[Fact]
public void CalculateMinRectangleWhenSourceIsSmallerThanTarget()
{
var sourceSize = new Size(200, 100);
var target = new Size(400, 200);
var actual = ResizeHelper.CalculateTargetLocationAndBounds(
sourceSize,
new ResizeOptions{
Mode = ResizeMode.Min,
Size = target
},
target.Width,
target.Height);
Assert.Equal(sourceSize, actual.Item1);
Assert.Equal(new Rectangle(0, 0, sourceSize.Width, sourceSize.Height), actual.Item2);
}
}
}
Loading…
Cancel
Save