C#-[祈福]天佑中华 众志成城 抗震救灾 重建家园

你的苦难就是我们的苦难,你的希望就是我们的希望。当灾难来临时,我们与你在一起,一起为逝者默念安息、一起为伤者祈祷平安。而更多的关怀和力量,正悄悄在汇集:天佑中华,众志成城;抗震救灾、重建家园......
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2008-06-03 21:40  尹合磊  阅读(244)  评论(0编辑  收藏  举报
 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        }