.net缩略图 GDI+一般性错误解决方法。

来源:互联网 发布:js当前时间加一年 编辑:程序博客网 时间:2024/04/30 04:23
 
 public void CreateMinImageAndDel(string originalImagePath, string thumbnailPath, int width, int height)        {            Graphics draw = null;            string FileExt = "";            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath(originalImagePath));            int towidth = width;            int toheight = height;            int ow = originalImage.Width;            int oh = originalImage.Height;            //新建一个bmp图片            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);            System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(towidth, toheight);            //新建一个画板            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);            //设置高质量插值法            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;            //设置高质量,低速度呈现平滑程度            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;            //清空画布并以透明背景色填充            g.Clear(System.Drawing.Color.Transparent);            //在指定位置并且按指定大小绘制原图片的指定部分            g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight));            try            {                //以jpg格式保存缩略图                FileExt = Path.GetFileNameWithoutExtension(originalImagePath);                draw = Graphics.FromImage(bitmap2);                draw.DrawImage(bitmap, 0, 0);            }            catch (System.Exception e)            {                throw e;            }            finally            {                originalImage.Dispose();                bitmap.Dispose();                g.Dispose();                bitmap2.Save(HttpContext.Current.Server.MapPath(thumbnailPath) + FileExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);            }        }

直接拷贝方法既可用 因为如果只创建一个img对象进行图片的缩略保存会照成锁死。

所以这里申明了2个

System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);

System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(towidth, toheight);


 

原创粉丝点击