如何在C#中以编程方式放大和缩小图像?

时间:2010-12-28 23:55:37

标签: c# .net image image-manipulation image-zoom

我希望能够缩放( - / +)放置在面板下的图像。我希望图像的缩放版本显示在该面板中。我怎样才能在C#中实现这个目标?

简单来说,当我在C#中以编程方式点击图像时,如何放大和缩小图像?

3 个答案:

答案 0 :(得分:3)

如果您使用 GDI + ,那么您可以通过以下方式使用 Matrix 转换类来实现此目的......

// Get hold of your graphics context...
using(Graphics g = this.CreateGraphics())
{
    // When drawing we want to apply a scaling of 2,2 (making it bigger!)
    Matrix m = new Matrix();
    m.Scale(2, 2, MatrixOrder.Append);
    g.Transform = m;

    // Draw the actual image using the assigned matrix transform
    g.DrawImage(...);        
}

当您想要放大或缩小时,您只是改变使用的缩放值。

答案 1 :(得分:2)

您需要使用GDI +绘图函数(在.NET Framework中公开为Graphics类的方法)来执行此操作。基本上,您将把基本图像的缩放版本重新绘制到显示面板中。

使用像Graphics.DrawImage之类的东西,您所要做的就是指定基本图像,源矩形(要放大的基本图像部分)和目标矩形(新的尺寸,缩放图像)。

这里有一个教程,你可能觉得值得花时间看看(源代码下载链接在页面底部):http://www.vcskicks.com/image-zoom.php

如果这只能激发您对C#中图形的兴趣,请查看this article以获得有关其图形相关功能的更全面的介绍。

答案 2 :(得分:1)

免责声明:我在Atalasoft工作

我们的DotImage Photo SDK是免费的,并且有一个WinForms控件,具有此功能和许多其他功能(平移,自动缩放,放大镜等)