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

 更新时间:2007年09月10日 21:49:29   作者:  
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();

相关文章

  • ASP.NET 统计图表控件小结

    ASP.NET 统计图表控件小结

    近来客户需要将前段时间开发的统计信息用图表展示出来,还要多个图表类型,例如:柱状图、饼图、曲线图、三维图等等。在网上google了一下,发现了三个(也许更多)可以使用的控件。下面我们一起看看这三个控件。
    2009-11-11
  • .NET Core(.NET6)中gRPC使用实践

    .NET Core(.NET6)中gRPC使用实践

    gRPC是高性能的远程过程调用(RPC)框架,本文主要介绍了.NET Core(.NET6)中gRPC使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • .NET开发基础:从简单的例子理解泛型 分享

    .NET开发基础:从简单的例子理解泛型 分享

    .Net开发基础系列文章,对自己之前写过的代码备忘,如能给人予帮助,不甚荣幸。个人能力有限,如有差错或不足,请及时指正。
    2013-06-06
  • AspNetPager分页控件源代码(Version 4.2)

    AspNetPager分页控件源代码(Version 4.2)

    AspNetPager分页控件源代码(Version 4.2)...
    2007-04-04
  • asp.net 删除项目文件/文件夹IIS重启,Session丢失问题

    asp.net 删除项目文件/文件夹IIS重启,Session丢失问题

    最近在做一个项目,涉及到大量文件中转(先上传到本项目的某个文件夹中,在移动到FTP中),后面发现每次一删除文件之后在做操作都会提示未登录,刚开始以为是WebService Session丢失问题,后面发现缓存也更新了
    2011-12-12
  • 理解ASP.NET Core 配置系统

    理解ASP.NET Core 配置系统

    本文主要介绍了理解ASP.NET Core 配置系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

    Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

    这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • asp.net fileupload控件上传文件与多文件上传

    asp.net fileupload控件上传文件与多文件上传

    这篇文章主要介绍了asp.net fileupload控件上传文件的方法,fileupload控件多文件上传,以及fileupload上传时实现文件验证的方法,需要的朋友可以参考下
    2014-11-11
  • 使用最小 WEB API 实现文件上传的Swagger支持

    使用最小 WEB API 实现文件上传的Swagger支持

    这篇文章主要介绍了使用最小 WEB API 实现文件上传Swagger支持,我们使用最小 WEB API 实现文件上传功能,虽然客户端访问是正常的,但是当打开 Swagger 页面时,没法使用 Swagger 页面测试,下面就来一篇支持Swagger的,需要的小伙伴可以参考一下
    2022-02-02
  • .Net Core简单使用Mvc内置的Ioc(续)

    .Net Core简单使用Mvc内置的Ioc(续)

    怎样直接获取Ioc中的实例对象,而不是以构造函数的方式进行获取呢?这篇文章继续为大家介绍.Net Core简单使用Mvc内置的Ioc
    2018-03-03

最新评论