`
izuoyan
  • 浏览: 8966395 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

上传图片并且生成可以控制大小图片清晰度的方法

 
阅读更多
private void Upload_Click(object sender, System.EventArgs e)
{
if(myFile.PostedFile !=null)
{
// 检查文件扩展名字
HttpFileCollection files = HttpContext.Current.Request.Files;
HttpPostedFile postedFile = files[0];
string fileName,fileExtension,file_id,file_path;

//取出精确到毫秒的时间做文件的名称
int year = System.DateTime.Now.Year;
int month = System.DateTime.Now.Month;
int day = System.DateTime.Now.Day;
int hour = System.DateTime.Now.Hour;
int minute = System.DateTime.Now.Minute;
int second = System.DateTime.Now.Second;
int millisecond = System.DateTime.Now.Millisecond;
string my_file_id = year.ToString() + month.ToString() + day.ToString() + hour.ToString() + minute.ToString() + second.ToString() + millisecond.ToString();

//获得文件类型
fileName = System.IO.Path.GetFileName(postedFile.FileName);
fileExtension = System.IO.Path.GetExtension(fileName);

//重新命名文件,防止重复
file_id = "topnews_"+my_file_id+fileExtension;
file_path = "images/article_images/"+file_id;

//文件上传到服务器的根目录
postedFile.SaveAs(Request.PhysicalApplicationPath+@"images\article_images\"+ file_id);

//处理图片大小
int width,height,level;
width=120;
height=90;
level=100;//从1-100
GetThumbnailImage(width,height,level,file_id);
}
}

//生成缩略图函数
public void GetThumbnailImage(int width,int height,int level,string file_id)
{
string newfile= Request.PhysicalApplicationPath+"images/article_images/"+"top_"+ file_id;
System.Drawing.Image oldimage = System.Drawing.Image.FromFile(Request.PhysicalApplicationPath+"images/article_images/"+ file_id);
System.Drawing.Image thumbnailImage = oldimage.GetThumbnailImage(width, height,new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback), IntPtr.Zero);
Bitmap output=new Bitmap(thumbnailImage);

//处理JPG质量的函数
ImageCodecInfo[] codecs=ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici=null;
foreach(ImageCodecInfo codec in codecs){if(codec.MimeType=="image/jpeg")ici=codec;}
EncoderParameters ep=new EncoderParameters();
ep.Param[0]=new EncoderParameter(Encoder.Quality,(long)level);
output.Save(newfile,ici,ep);

//释放所有使用对象
ep.Dispose();
output.Dispose();
oldimage.Dispose();
thumbnailImage.Dispose();

//删除源图片
string file_path = "images/article_images/"+"top_"+file_id;
usageIO.DeletePath(Request.PhysicalApplicationPath+"images/article_images/"+ file_id);
Response.Write("<script >parent.Form1.A_Simg.value ='"+file_path+"';location.replace('Upload_Img.aspx')</script>");
}

bool ThumbnailCallback()
{
return false;
}

分享到:
评论

相关推荐

    java代码保存宽高不变压缩图片(失真不大).docx

    java代码保存宽高不变压缩图片(失真不大),按照文件大小,进行压缩质量控制

    C#裁剪,缩放,清晰度,水印处理操作示例

    或是如何在上传的图片下加一个半透明的LOGO水印? OK,本文根据自己的项目代码描述以上问题的解决方案,全部基于.Net Framework类库完成,代码中包含了C#图片处理的一些基础知识,与大家分享,个人能力有限,不足之...

    360云盘客户端 v6.6.0.1312.zip

    5、图片上传可设置不压缩,保持图片原像素和清晰度,文件大小不变; 6、通过PC客户端上传的单个文件的大小随着用户等级提升不断增大(例,几天使用后升到LV5级,用客户端上传的单个文件达到400MB、外链分享文件的...

    中小学生学籍管理系统 相片工具V1.2.0.0.0

    单击&lt;定位文件夹&gt;按钮,可以定位到该学生所在班级的相片文件夹,你可以用压缩软件进该文件夹进行压缩上传(注意:压缩成ZIP格式)或者进行其他操作。 6、相片的保存路径: 相片默认保存在”D:\学籍管理系统相片\”...

    LeadBBS v2.05 论坛.rar

    25.上传的图片如果太大,可自动生成缩略图. 26.上传的图片如果非GIF,jpg,png等浏览器直接支持显示的格式,自动生成一幅缩略显示,并作链接 27.上传方式可以选择是否采用DotNet上传功能(支持上传最大4M的文件) 28.可...

    JspRun!社区论坛系统 v6.0 bulid 090423 GBK 源码版.rar

    系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。...

    JspRun!社区论坛系统 v6.0 bulid 090424 GBK 安装版.rar

    系统采用struts、hibernate框架及中间件的结合既实现了业务逻辑与控制逻辑的有效分离,提高了层次结构的清晰度,提高了复用的粒度降低了开发代价和维护代价,同时保证了软件的质量使其更具有鲁棒性和可维护性。...

    爱革CMS(门户网站) 3.0.rar

    可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用代码 可以清楚页面中的脚本注释,HTML注释和空白,从而页面更小,降低流量,提高...

    爱革CMS(公司网站) 3.0.rar

    可以不需要任何组件和设置的情况下,上传超大文件,而且显示当前的上传进度。上传文件更加友好,强大。 21.智能清除网页上的无用代码 可以清楚页面中的脚本注释,HTML注释和空白,从而页面更小,降低流量,提高...

    青果校园兼职网,阿赛企业网站管理

    优越感:编辑器全站通用单文件控制上传系统,编辑器支持各种类型的图片、动画、音频、视频等格式的上传,完善的订单系统,完整无限制、无误的后台操作平台,支持一级分类打开,横幅、广告图片后台直接覆盖式上传更新...

    Google Android SDK开发范例大全(第3版) 1/5

    《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...

    Google Android SDK开发范例大全(第3版) 4/5

    《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...

    Google Android SDK开发范例大全(第3版) 3/5

    《Google Android SDK开发范例大全(第3版)》内容由Android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合Android的初学者和Android的进阶程序开发者阅读参考。 编辑本段 编辑推荐 《Google Android SDK...

    《Google Android SDK开发范例大全(第3版)》.pdf

     《google android sdk开发范例大全(第3版)》内容由android的基础知识到实际开发应用,结构清晰、语言简洁,非常适合android的初学者和android的进阶程序开发者阅读参考。 目录 《google android sdk开发范例...

    VideoCapture:仿微信录制小视频,添加上传功能

    WeChatVideoRecorder Android-VideoRecorder 仿Android微信录制小视频功能 ...2.视频压缩,怎么在保证一定清晰度的前提下,尽可能的压缩生成文件的大小 3.资源的初始化以及释放的合理位置 #About Devloper Neo ()

Global site tag (gtag.js) - Google Analytics