找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 14127|回复: 2

在ASP.NET中实现上传图片,并按比例生成缩略图

[复制链接]
发表于 2009-11-29 01:27:24 | 显示全部楼层 |阅读模式 IP:江苏扬州
在ASP.NET中实现上传图片,并按比例生成缩略图
[ 2007-1-23 16:43:00 | By: 玩物丧志 ]

private void btnUploadPicture_Click(object sender, System.EventArgs e)
{
    //检查上传文件的格式是否有效
    if(this.UploadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
    {
     Response.Write("上传图片格式无效!");
     return;
    }

    //生成原图
    Byte[] oFileByte = new byte[this.UploadFile.PostedFile.ContentLength];
    System.IO.Stream oStream = this.UploadFile.PostedFile.InputStream;
    System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);

    int oWidth = oImage.Width; //原图宽度
    int oHeight = oImage.Height; //原图高度
    int tWidth = 100; //设置缩略图初始宽度
    int tHeight = 100; //设置缩略图初始高度

    //按比例计算出缩略图的宽度和高度
    if(oWidth >= oHeight)
    {
     tHeight = (int)Math.Floor(Convert.ToDouble(oHeight) * (Convert.ToDouble(tWidth) / Convert.ToDouble(oWidth)));
    }
    else
    {
     tWidth = (int)Math.Floor(Convert.ToDouble(oWidth) * (Convert.ToDouble(tHeight) / Convert.ToDouble(oHeight)));
    }

    //生成缩略原图
    Bitmap tImage = new Bitmap(tWidth,tHeight);
    Graphics g = Graphics.FromImage(tImage);
    g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量插值法
    g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
    g.Clear(Color.Transparent); //清空画布并以透明背景色填充
    g.DrawImage(oImage,new Rectangle(0,0,tWidth,tHeight),new Rectangle(0,0,oWidth,oHeight),GraphicsUnit.Pixel);

    string oFullName = Server.MapPath(".") + "/" + "o" + DateTime.Now.ToShortDateString().Replace("-","") + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存原图的物理路径
    string tFullName = Server.MapPath(".") + "/" + "t" + DateTime.Now.ToShortDateString().Replace("-","") + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存缩略图的物理路径

    try
    {
     //以JPG格式保存图片
     oImage.Save(oFullName,System.Drawing.Imaging.ImageFormat.Jpeg);
     tImage.Save(tFullName,System.Drawing.Imaging.ImageFormat.Jpeg);
    }
    catch(Exception ex)
    {
     throw ex;
    }
    finally
    {
     //释放资源
     oImage.Dispose();
     g.Dispose();
     tImage.Dispose();
    }
}
发表于 2010-1-15 11:05:06 | 显示全部楼层 IP:武汉大学
一楼的位置好啊..我考,这是一种文明,我指 的是回帖。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 03:20 , Processed in 0.214058 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表