日期:2014-05-18  浏览次数:21038 次

C# 图像动画放大缩小 如何实现?
大家好,请问如何做到打开winform后,picturebox中的图像可以自动放大再缩小,平滑的那种,类似动画效果。就像那种GIF图像一样,但是是用程序写的?谢谢大家!!

------解决方案--------------------
OnPaint事件中,把图像DrawImage到picturebox的区域上去,OnResize事件中调用Invalidate重绘
------解决方案--------------------
C# code

/// <summary>
        /// Resize图片
        /// </summary>
        /// <param name="bmp">原始Bitmap</param>
        /// <param name="newW">新的宽度</param>
        /// <param name="newH">新的高度</param>
        /// <returns>处理以后的Bitmap</returns>
        public static Bitmap ResizeImage(Bitmap bmp, int newW, int newH)
        {
            try
            {
                Bitmap b = new Bitmap(newW, newH);
                Graphics g = Graphics.FromImage(b);
                // 指定在缩放或旋转图像时使用的算法。
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                // 缩放图像
                g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
                g.Dispose();
                return b;
            }
            catch
            {
                return null;
            }
        }