广

ASP.NET

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    asp.net图片上传生成缩略图的注意事项

    2018-05-04 21:20:54 次阅读 稿源:互联网
    广告
    bitmap.Save(imgPath,ImageFormat.Jpeg);  
    //这是保存缩略图的一段代码,其中的ImageFormat.Jpeg一定不能省略,即使你保存的文件本来就是jpg格式的,也不能去掉。因为如果去掉的话,生成的缩略图比原始图片还要大!


    //另外,imgPath必须首先创建,否则会产生GDI+的一般性错误。
    path=System.Web.HttpContext.Current.Server.MapPath(path);
    使用if(!System.IO.Directory.Exists(path))System.IO.Directiory.CreateDirectory(path); 


    //生成缩略图,不要使用GetThumbnailImage方法,这个方法产生的缩略图质量奇差无比,不能使用!



    //简单代码如下:
         string path=System.Web.HttpContext.Current.Server.MapPath(strpath);
          sourcePath=System.Web.HttpContext.Current.Server.MapPath(sourcePath);

          if(!System.IO.Directory.Exists(path))System.IO.Directory.CreateDirectory(path);

          string sourceImage =sourcePath + fileName;
          string thumbImage = path + fileName;

         //原图(引用)
       Image img=Image.FromFile(sourceImage,true);

       //实际缩略图大小
       System.Drawing.Size size=Pic.ImgSize(maxW,maxH,img.Width,img.Height);
       int w=size.Width;
       int h=size.Height;

       //绘制缩略图
       Bitmap bitmap=new Bitmap(w,h);
       Graphics g=Graphics.FromImage(bitmap);

       //设定缩略图呈现质量
       g.CompositingQuality=System.Drawing.Drawing2D.CompositingQuality.HighQuality;
       g.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality;
       //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;

       //清洁背景
       g.Clear(Color.White);

          Rectangle thumbRect=new Rectangle(0,0,w,h);
          g.DrawImage(img,thumbRect);

          //保存缩略图
       bitmap.Save(thumbImage,ImageFormat.Jpeg);

       //释放内存
       bitmap.Dispose();
       img.Dispose();
       g.Dispose();

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告