我希望能够缩放( - / +)放置在面板下的图像。我希望图像的缩放版本显示在该面板中。我怎样才能在C#中实现这个目标?
简单来说,当我在C#中以编程方式点击图像时,如何放大和缩小图像?
答案 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控件,具有此功能和许多其他功能(平移,自动缩放,放大镜等)