调整图像大小并保持纵横比

时间:2012-11-27 20:25:10

标签: vb.net image algorithm resize aspect-ratio

我正在尝试制作放大/缩小按钮,但无论出于何种原因,我都无法弄清楚如何保持宽高比并调整图像大小 - 例如90%或110%

问题是我正在尝试这样做,以便当您单击4次缩小按钮,然后单击4次放大按钮时,图像将是其原始大小。没有定义宽度,因为我试图使新宽度为现有宽度的90%/ 110%,但显然乘以0.9和1.1不能正确地做到这一点。

我目前有以下代码..

    Dim source As New Bitmap(PictureBox1.Image)
    Dim NewWidth As Integer = source.Width * 0.9
    Dim NewHeight As Integer = NewWidth * (source.Height / source.Width)

感谢任何帮助。我确信我只是过度思考它,但是我会赞赏一些指导:)

1 个答案:

答案 0 :(得分:3)

最好的方法是使用原始图像的副本开始每个调整大小操作。让你的按钮代表总变焦系数(所以说为+增加0.1变焦,为减去0.1变焦)。

您希望每次都从原始图像开始,因为否则连续操作会因放大和缩小中固有的插值而快速扭曲图像。