日期:2014-05-17  浏览次数:20919 次

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.Dra