首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#做的程序能不能实现界面下的图片可放大缩小

2013-02-25 
C#做的程序能不能实现界面上的图片可放大缩小?如题目。现在在做一个项目,主界面上显示一张图片,同时需要可

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);


            
        }

热点排行