略缩图的方法

来源:互联网 发布:神经内科 知乎 编辑:程序博客网 时间:2024/04/29 22:34
//生成缩略图
                //MyPostFile   上传的图片文件
                //SavaPath   保存缩略图完整路径
                //MyWidth   缩略图的宽度
                //MyHeight   缩略图的高度
                public   void   SmallImgW(System.Web.HttpPostedFile   MyPostFile,   string   SavePath,   System.Double   MyWidth,   System.Double   MyHeight)
                {       //取得图片对象
                        System.Drawing.Image   myimage=System.Drawing.Image.FromStream(MyPostFile.InputStream,true);
                        //判断原图片大小   指定高宽裁减(不变形)
                        System.Double   newwidth,   newheight;
                        if   (myimage.Width   >   myimage.Height)
                        {
                                newwidth   =   MyWidth;
                                newheight   =   myimage.Height   *   (newwidth   /   myimage.Width);
                        }
                        else
                        {
                                newheight   =   MyHeight;
                                newwidth   =   (newheight   /   myimage.Height)   *   myimage.Width;
                        }
                     
                       
                        //新建一个bmp图片
                        System.Drawing.Image   mybitmap   =   new   System.Drawing.Bitmap((int)newwidth,   (int)newheight);

                        //新建一个画板
                        System.Drawing.Graphics   g   =   System.Drawing.Graphics.FromImage(mybitmap);

                        //设置高质量插值法
                        g.InterpolationMode   =   System.Drawing.Drawing2D.InterpolationMode.High;

                        //设置高质量,低速度呈现平滑程度
                        g.SmoothingMode   =   System.Drawing.Drawing2D.SmoothingMode.HighQuality;

                        //清空画布并以透明背景色填充
                        g.Clear(System.Drawing.Color.Transparent);
                        //在指定位置画图
                        g.DrawImage(myimage,   new   System.Drawing.Rectangle(0,   0,   mybitmap.Width,mybitmap.Height),new   System.Drawing.Rectangle(0,   0,   myimage.Width,myimage.Height),System.Drawing.GraphicsUnit.Pixel);

                        try
                        {
                            //以jpg格式保存缩略图
                                mybitmap.Save(SavePath,   System.Drawing.Imaging.ImageFormat.Jpeg);
                        }
                        catch   (System.Exception   e)
                        {
                            throw   e;
                        }
                        finally
                        {
                            //释放对象
                            myimage.Dispose();
                            mybitmap.Dispose();
                            g.Dispose();
                        }

                } 

 
原创粉丝点击