English 中文(简体)
c调整图像大小并使其适应正方形,同时保持纵横比
原标题:c# resize image and fit it into the square while preserving aspect ratio

我为我的网站做的工作很少,我想自动调整我的图像大小。。但不仅可以自动调整大小,还可以保持它们的比例,即使我调整了它们的宽度或高度。我想添加额外的白色边框来补偿新的空间。

我过去从未做过任何图像工作,我应该如何处理这个问题?

最佳回答

计算高度,假设宽度合适,然后将其与容器的高度进行核对。如果它更高,那么计算宽度以使高度合适:

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

现在,您可以计算将图像放置在何处以使其居中:

x = (containerWidth - newWidth) / 2;
y = (containerHeight - newHeight) / 2;
问题回答




相关问题
Bring window to foreground after Mutex fails

I was wondering if someone can tell me what would be the best way to bring my application to the foreground if a mutex was not able to be created for a new instance. E.g.: Application X is running ...

How to start WinForm app minimized to tray?

I ve successfully created an app that minimizes to the tray using a NotifyIcon. When the form is manually closed it is successfully hidden from the desktop, taskbar, and alt-tab. The problem occurs ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

Handle DataTable.DataRow cell change event

I have a DataTable that has several DataColumns and DataRow. Now i would like to handle an event when cell of this DataRow is changed. How to do this in c#?

Apparent Memory Leak in DataGridView

How do you force a DataGridView to release its reference to a bound DataSet? We have a rather large dataset being displayed in a DataGridView and noticed that resources were not being freed after the ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

WPF-XAML window in Winforms Application

I have a Winforms application coded in VS C# 2008 and want to insert a WPF window into the window pane of Winforms application. Could you explain me how this is done.

热门标签