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

转载 2006年06月08日 19:27: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;
        }

 

Android压缩图片到100K以下并保持不失真的高效方法

在开发Android企业应用时,会经常上传图片到服务器,而我们公司目前维护的一个项目便是如此。该项目是通过私有apn与服务器进行交互的,联通的还好,但移动的速度实在太慢,客户在使用软件的过程中,由于上...
  • jdsjlzx
  • jdsjlzx
  • 2015年03月12日 22:58
  • 15610

PHP实现图片压缩同时保持清晰度

PHP实现图片压缩同时保持清晰度 图片太大是一个经常遇到的问题,为此很多人头疼。今天告诉大家如何实现PHP程序简单实现压缩: 图片原大小: 压缩后: 这是我自己...
  • qq_36608163
  • qq_36608163
  • 2017年06月13日 11:44
  • 1761

ajaxFileUpload结合图片预览(可控制上传的张数)

下面是上传主页面
  • sdp1993
  • sdp1993
  • 2014年06月24日 12:56
  • 5720

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

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

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

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

vlightbox 图片浏览 及 上传图片尺寸大小控制 源码

  • 2011年08月23日 23:29
  • 516KB
  • 下载

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

#region##对给定的一个图片(Image对象)生成一个指定大小的缩略图 /// /// 对给定的一个图片(Image对象)生成一个指定大小的缩略图。 /// //...
  • wangruiguang_
  • wangruiguang_
  • 2012年08月15日 16:36
  • 618

图片压缩大小清晰度测试

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

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

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

兼容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
  • 1750
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:上传图片并且生成可以控制大小图片清晰度的方法
举报原因:
原因补充:

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