惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
S
SegmentFault 最新的问题
Jina AI
Jina AI
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
WordPress大学
WordPress大学
博客园 - 三生石上(FineUI控件)
B
Blog
博客园 - 【当耐特】
博客园 - Franky
M
MIT News - Artificial intelligence
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Engineering at Meta
Engineering at Meta

博客园 - 尹合磊

用ObjectDataSource实现自定义分页的心得总结 如何:在 Calendar 控件中显示数据库中的选定日期 AddNew 方法创建可更新 Recordset 对象的新记录。 求一“从所有同类中排除某一类型”正则表达式? 按字节长度截取字符串(支持截取带HTML代码样式的字符串) ASP.NET2.0资料收藏 asp中通过一个全局方法来防止SQL注入式攻击 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码? 解决TreeView中使用JavaScript完成CheckBox全选的办法 Yahoo邮箱POP、SMTP服务器设置详解 关于前台调用后台事件__doPostBack函数 客户端触发Asp.net中服务端控件事件 marquee基本语法的全解释 SHTML 教程 SQL:以指定的次数重复字符表达式 JavaScript不间断连续图片滚动效果 Asp.net(C#)给图片加上水印效果 ASP.NET中存取图片到数据库的示例 Data Access Application Block--使用存储过程,参数及事务
ASP.NET(C#)生成缩略图
尹合磊 · 2008-06-03 · via 博客园 - 尹合磊

ASP.NET(C#)生成缩略图

Posted on 2008-06-03 21:40  尹合磊  阅读(251)  评论()    收藏  举报

 1if (FileUpload1.PostedFile.ContentType.ToLower().IndexOf("image"< 0)
 2        {
 3            FunctionUtility.JavaScriptHelper.Alert("上传图片格式不正确!");
 4            return;
 5        }

 6
 7        //生成原图
 8        Byte[] oFileByte = new Byte[FileUpload1.PostedFile.ContentLength];
 9        Stream oStream = FileUpload1.PostedFile.InputStream;
10        System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);
11
12        //原图宽度和高度
13        int oWidth = oImage.Width;
14        int oHeight = oImage.Height;
15
16        //设置缩略图的初始宽度和高度
17        int tWidth = 200;
18        int tHeight = 200;
19
20        //按比例计算出缩略图的宽度和高度
21        if (oWidth >= oHeight)
22        {
23            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth)));
24        }

25        else
26        {
27            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
28        }

29
30        //生成缩略图
31        Bitmap tImage = new Bitmap(tWidth, tHeight);
32        Graphics g = Graphics.FromImage(tImage);
33
34        //指定高质量插值法
35        g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
36        //指定高质量低速度呈现
37        g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
38        //清空画布并以透明背景色填充
39        g.Clear(Color.Transparent);
40
41        g.DrawImage(oImage, new Rectangle(00, tWidth, tHeight), new Rectangle(00, oWidth, oHeight), GraphicsUnit.Pixel);
42
43        //设置文件名称
44        string setFileName = FunctionUtility.FileHelper.GetDateTimeFileName()+".jpg";
45        //保存原图的物理路径
46        string oFullName = Server.MapPath("/DesignImages/Images/YT/" + setFileName);
47        //保存缩略图物理路径
48        string tFullName = Server.MapPath("/DesignImages/Images/SLT/" + setFileName);
49
50        //以JPG格式保存图片并释放占用的资源
51        try
52        {
53            oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
54            tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
55
56            Image1.Visible = true;
57            Image2.Visible = true;
58            Image1.ImageUrl = "/DesignImages/Images/YT/" + setFileName;
59            Image2.ImageUrl = "/DesignImages/Images/SLT/" + setFileName;
60
61            FunctionUtility.JavaScriptHelper.Alert("缩略图生成成功!");
62        }

63        catch (Exception oe)
64        {
65            throw oe;
66        }

67        finally
68        {
69            oImage.Dispose();
70            g.Dispose();
71            tImage.Dispose();
72        }