C#做的程序能不能实现界面上的图片可放大缩小?
如题目。
现在在做一个项目,主界面上显示一张图片,同时需要可以看某一块的放大图,有没有好的方法可以实现?
右边和下面加拉伸条也行,但又没有别的好的方法?
麻烦附上源码,谢谢。
联系邮箱zhuxiaowei716@sina.com
[解决办法]
/// <summary>
/// 放大缩小图片的局部
/// </summary>
/// <param name="g">缩放后的图像画布</param>
/// <param name="Magnification">放大倍率</param>
/// <param name="MouseX">鼠标位置</param>
/// <param name="MouseY"></param>
/// <param name="SourceImage">放大的源图象</param>
/// <param name="ContainerRect">存放放大后图像的容器的大小</param>
void Magnifier(Graphics g,int Magnification, int MouseX, int MouseY, Image SourceImage, Rectangle ContainerRect)
{
//计算在原图上截取图片的范围
int w = ContainerRect.Width / Magnification;
int h = ContainerRect.Height / Magnification;
int x = MouseX - w / 2;
int y = MouseY - w / 2;
if (x>SourceImage.Width)
{
x = SourceImage.Width - w;
}
else if (x<0)
{
x = 0;
}
if (y>SourceImage.Height )
{
y = SourceImage.Height - h;
}
else if (y<0)
{
y = 0;
}
//截取原图的x.y.w.h范围,并缩放适合ContainerRect的大小,达到放大缩小的效果
g.DrawImage(SourceImage,ContainerRect, x, y, w, h, GraphicsUnit.Pixel);
}