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

转载 2006年06月08日 15:29:00
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;
        }

相关文章推荐

选择手机中的一张照片或拍照上传图片(超高清晰度)

本文借鉴了多位前辈的代码,在自己的项目使用中根据需求做了一些修改,为了以后再次使用类似功能的时候方便一些,特把主要的代码流程部分贴出来 首先在activity中定义几个常量 private...

上传图片超出大小进行缩小控制

控制图片不超出范围 设置图片按比例自适应缩放 今天在看视觉规范的时候,大高走过来说帮他们那边看一个问题。又是一个关于自适应的问题。不过,我喜欢。瞄了一下,需求是这样的:用户上传照片,照片...

【CSDN常见问题解答】Web上传图片生成指定大小图片

在使用playframework的时候,发现框架提供了一个Image类,这个类可以实现生成指定大小的图片功能,我们来看下这个类: /** * Resize an image ...

对给定的一个图片生成一个指定大小的缩略图(上传图片很大是可用)

#region##对给定的一个图片(Image对象)生成一个指定大小的缩略图 /// /// 对给定的一个图片(Image对象)生成一个指定大小的缩略图。 /// //...

ajaxFileUpload.js上传图片插件,全浏览器兼容,规避json错误,带文件格式大小拦截

工作中需要异步上传图片,老大推荐了这个插件,但是网上很多的都有各自的问题,经过我自己的总结整理出了这堆代码给需要的朋友参考。以下是我遇到的几个问题: ①、返回json字符串{"state":true}...

图片压缩大小清晰度测试

昨天客户发来需求说app里面图片不清晰,需要修改图片清晰度。          之前的代码由于app的图片要上传到图片服务器,为了节省流量和减少上传时的耗时,所以图片应该尽量小,但却导致了图片不清晰。...

php上传图片自动生成缩略图方法函数

$file_name='C:\AppServ\www\_MG_9888.jpg'; $file_new='C:\AppServ\www\bbbb.jpg'; scal_pic($file_name,...

兼容ie6、ie7、ie8 和FF的本地上传图片预览,并客户端判断文件大小和文件格式

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> Firef...
  • ynztpwl
  • ynztpwl
  • 2011年12月31日 17:10
  • 1681
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传图片并且生成可以控制大小图片清晰度的方法
举报原因:
原因补充:

(最多只允许输入30个字)