Browse Source

Fix issue #43

Former-commit-id: b595749cba5c62e8a95dc1bf16d367b1078559ae
af/merge-core
mortenbock 12 years ago
parent
commit
c77a52d655
  1. 40
      src/ImageProcessor/Processors/Resize.cs

40
src/ImageProcessor/Processors/Resize.cs

@ -364,24 +364,26 @@ namespace ImageProcessor.Processors
}
}
// Constrain the image to fit the maximum possible height or width.
if (resizeMode == ResizeMode.Max)
{
if (sourceWidth > width || sourceHeight > height)
{
double ratio = Math.Abs(height / width);
double sourceRatio = Math.Abs(sourceHeight / sourceWidth);
if (sourceRatio < ratio)
{
height = 0;
}
else
{
width = 0;
}
}
}
// Constrain the image to fit the maximum possible height or width.
if (resizeMode == ResizeMode.Max)
{
//If either is 0, we don't need to figure out orientation
if (width > 0 && height > 0)
{
//integers must be cast to doubles to get needed precision
double ratio = (double)height / width;
double sourceRatio = (double)sourceHeight / sourceWidth;
if (sourceRatio < ratio)
{
height = 0;
}
else
{
width = 0;
}
}
}
// If height or width is not passed we assume that the standard ratio is to be kept.
if (height == 0)
@ -669,4 +671,4 @@ namespace ImageProcessor.Processors
return floats;
}
}
}
}

Loading…
Cancel
Save