c#调整图像大小并将其装入正方形,同时保留纵横比

时间:2012-05-25 16:49:02

标签: c# winforms image image-processing image-resizing

我正在为我的网站做一些工作,我想自动调整我的图像..但不仅自动调整大小,而且保持它们成比例,即使我调整其宽度或高度。我想添加额外的白色边框以补偿新的空间。

我以前从未做过任何形象工作,我该如何处理呢?

2 个答案:

答案 0 :(得分:7)

计算高度,就像宽度适合一样,然后根据容器的高度进行检查。如果它更高,则计算宽度以使高度适合:

newHeight = oldHeight * containerWidth / oldWidth;
if (newHeight <= containerHeight) {
  newWidth = containerWidth;
} else {
  newWidth = oldWidth * containerHeight / oldHeight;
  newHeight = containerHeight;
}

现在,您可以计算图像的放置位置:

x = (containerWidth - newWidth) / 2;
y = (containerHeight - newHeight) / 2;

答案 1 :(得分:0)

如果您正在谈论单源映像,在那里上传主映像并通过查询字符串请求它的版本,那么我可以提供帮助。

我是http://imageresizing.net/的作者。它是一个由附加插件资助的开源库。

您想要的功能包含在免费核心中 - 只需在任何图片网址上安装并添加?width = 100&amp; height = 100即可。

从ASP.NET进行图像处理非常棘手。除非你有强大的Win / C ++背景,否则你真的不应该这样做。 .NET不会垃圾收集System.Drawing实例。