ImageResizer - 支持maxWidth& MaxHeight - >意味着保持宽高比

时间:2011-05-19 14:57:18

标签: c# asp.net image-resizing aspect-ratio

我正在寻找像下面的An ImageResizer,它支持MaxWidth& MaxHeight ......
我在哪里可以找到它? 下面的模块做了许多其他对我来说不必要的工作 只是想改变格式&支持maxwidth和maxheight。

ImageResizer

2 个答案:

答案 0 :(得分:2)

您可以编写一个强制执行最大宽度和最大高度的包装器,并保持纵横比。

例如,假设您的图像为640 x 120,最大值为1,920 x 1,440。现在,您想要使该图像尽可能大,所以您写道:

ResizeImage(image, 1920, 1440)

如果你这样做,会拍摄宽高比。

您需要计算现有图像的纵横比并调整值。

// Compute existing aspect ratio
double aspectRatio = (double)image.Width / image.Height;

// Clip the desired values to the maximums
desiredHeight = Math.Min(desiredHeight, MaxHeight);
desiredWidth = Math.Min(desiredWidth, MaxWidth);

// This is the aspect ratio if you used the desired values.
double newAspect = (double)desiredWidth / desiredHeight;

if (newAspect > aspectRatio)
{
    // The new aspect ratio would make the image too tall.
    // Need to adjust the height.
    desiredHeight = (int)(desiredWidth / aspectRatio);
}
else if (newAspect < aspectRatio)
{
    // The new aspect ratio would make the image too wide.
    // Need to adjust the width.
    desiredWidth = (int)(desiredHeight * aspectRatio);
}

// You can now resize the image using desiredWidth and desiredHeight

答案 1 :(得分:1)

如果图书馆的功能超出您的需求,则无关紧要。如果它能满足您的需求,请使用它。额外的东西根本不会损害你。