博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NET生成缩略图
阅读量:6277 次
发布时间:2019-06-22

本文共 2547 字,大约阅读时间需要 8 分钟。

1.添加一个html

图片:

原图宽: 原图高:  原图大小:KB

设置宽度: 高度按原图比例折算

2.添加一个处理程序:ashx

public void ProcessRequest(HttpContext context)        {            //1.获取用户上传的文件流            HttpPostedFile file = context.Request.Files[0];            //获取文件名            string fileName = file.FileName;            //获取扩展名            string Extension = Path.GetExtension(fileName).ToUpper();            //2.根据用户上传的文件流创建一个图片            using (Image originalImage = Image.FromStream(file.InputStream))            {            //获取原始图片的宽和高                int owidth = originalImage.Width;                int oheight = originalImage.Height;                //缩略图的宽                int mwidth = Convert.ToInt32(context.Request.Form["width"]);                //等比例的高,取整数                int mheight = mwidth * oheight / owidth;                //3.根据原始图片,等比例创建一个缩小后的图片                using (Image minImage = new Bitmap(mwidth, mheight))                {                   //4.把大图片内容画到小图片上                    //基于小图创建一个画布对象                    Graphics gmin = Graphics.FromImage(minImage);                    //把大图画到小图上                    gmin.DrawImage(originalImage, 0, 0, mwidth, mheight);                    //5.下载缩略图                    MemoryStream ms = new MemoryStream();                    //判断图片类型                    ImageFormat imageFormat = null;                    string ContentType = "";                    switch (Extension)                    {                        case ".JPG": imageFormat = ImageFormat.Jpeg; ContentType = "image/jpeg"; break;                        case ".PNG": imageFormat = ImageFormat.Png; ContentType = "image/png"; break;                        case ".GIF": imageFormat = ImageFormat.Gif; ContentType = "image/gif"; break;                        //................如需要其他图片格式继续添加                    }                    minImage.Save(ms,imageFormat);                    context.Response.ClearContent();                    context.Response.AddHeader("Content-Disposition", "attachment;  filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));                     context.Response.ContentType=ContentType;                    context.Response.BinaryWrite(ms.ToArray());                    context.Response.End();                }            }        }        public bool IsReusable        {            get            {                return false;            }        }

转载于:https://www.cnblogs.com/wuxl360/p/5422121.html

你可能感兴趣的文章
3.31
查看>>
类对象定义 二
查看>>
收费视频网站Netflix:用户到底想要“点”什么?
查看>>
MacOS High Sierra 12 13系统转dmg格式
查看>>
关于再次查看已做的多选题状态逻辑问题
查看>>
动态下拉菜单,非hover
查看>>
政府安全资讯精选 2017年第十六期 工信部发布关于规范互联网信息服务使用域名的通知;俄罗斯拟建立备用DNS;Google打击安卓应用在未经同意情况下收集个人信...
查看>>
简单易懂的谈谈 javascript 中的继承
查看>>
多线程基础知识
查看>>
iOS汇编基础(四)指针和macho文件
查看>>
Laravel 技巧锦集
查看>>
Android 使用 ViewPager+RecyclerView+SmartRefreshLayout 实现顶部图片下拉视差效果
查看>>
Flutter之基础Widget
查看>>
写给0-3岁产品经理的12封信(第08篇)——产品运营能力
查看>>
ArcGIS Engine 符号自动化配置工具实现
查看>>
小程序 · 跳转带参数写法,兼容url的出错
查看>>
flutter error
查看>>
Flask框架从入门到精通之模型数据库配置(十一)
查看>>
10年重新出发
查看>>
2019年-年终总结
查看>>