获取图片缩略图

 protected void btnUpLoadFile_Click(object sender, EventArgs e)
    {
        //判断上传文件格式是否有效
        if (UpLoadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
        {
            string strAlert = "<script language = 'javascript'>alert('文件格式错误');</script>";
            Response.Write(strAlert);
            return;
        }

        //生成原图
        Stream oStream = UpLoadFile.PostedFile.InputStream;
        System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);

        //获取原图的Height和Width
        int oHeight = oImage.Height;
        int oWidth = oImage.Width;

        //设置初始时缩略图的Height和Width
        int tHeight = 100;
        int tWidth = 100;

        //按照原始比例计算所略图的Height和Width
        if (oWidth > oHeight)
        {
            tHeight = (int)Math.Floor(Convert.ToDouble(oHeight)/Convert.ToDouble(oWidth)*tWidth);
        }
        else
        {
            tWidth = (int)Math.Floor(Convert.ToDouble(oWidth)/Convert.ToDouble(oHeight)*Convert.ToDouble(tHeight));
        }

        //生成缩略图
        Bitmap tImage = new Bitmap(tWidth, tHeight);
        Graphics graphic = Graphics.FromImage(tImage);
        graphic.InterpolationMode = InterpolationMode.High;//设置高质量插值法
        graphic.SmoothingMode = SmoothingMode.HighQuality; ;//设置高质量,低速度呈现平滑程度
        graphic.Clear(Color.Transparent);
        graphic.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
        {
            oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
            tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
        }
        catch(Exception ex)
        {
            string strEx = "<script language = 'javascript'>alert(" + ex.ToString() + ")</script>";
            Response.Write(strEx);
        }
        finally
        {
            oImage.Dispose();
            tImage.Dispose();
            graphic.Dispose();

        }
    }

转载于:https://www.cnblogs.com/zijinguang/archive/2007/09/05/883214.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值