• .net上传图片生成大小缩略图


    public string GetSqlFile(FileUpload fp, int width, int height)
            {
                string sqlfile = "";
                string tempSqlPath = "";
                string path = HttpContext.Current.Request.PhysicalApplicationPath.ToString() + "upload/";
                path += "UploadFile/" + DateTime.Now.ToString("yyyyMM");
                tempSqlPath = "\\upload\\UploadFile\\" + DateTime.Now.ToString("yyyyMM");
                if (Directory.Exists(path))
                {

                }
                else
                {
                    Directory.CreateDirectory(path);
                }
                if (Directory.Exists(path + "/small"))
                {
                }
                else
                {
                    Directory.CreateDirectory(path + "/small");
                }
                if (Directory.Exists(path + "/temp"))
                {
                }
                else
                {
                    Directory.CreateDirectory(path + "/temp");
                }
                //HttpFileCollection files = HttpContext.Current.Request.Files;

                if (fp.FileName.ToString().Length > 0)
                {
                    string filename = fp.FileName.ToString();
                    string datestr = DateTime.Now.ToString("yyyyMMddHmmssfff");
                    string ext = filename.Substring(filename.LastIndexOf(".")).ToLower();
                    if (ext != ".bmp" && ext != ".jpg" && ext != ".gif" && ext != ".jpeg")
                    {
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不是.gif,jpg,jpeg,bmp格式')</script>");
                        return "";
                    }
                    string tempFilePath = path + "/" + "temp/" + datestr + ext;
                    fp.SaveAs(tempFilePath);
                    #region 生成小图
                    string originalFilename = path + "/" + datestr + ext;
                   //fp.FileBytes
                    //缩小的倍数
                    int iScale = 1;
                    //从文件取得图片对象
                    System.Drawing.Image image = null;
                    try
                    {
                        image = System.Drawing.Image.FromFile(tempFilePath);
                       
                    }
                    catch
                    {
                        //
                        try
                        {
                            File.Delete(tempFilePath);
                            image.Dispose();

                        }
                        catch
                        {
                        }
                        HttpContext.Current.Response.Write("<script>alert('上传的文件不 是.gif,jpg,jpeg,bmp图片的标准格式格式')</script>");
                        return "";

                    }
                    int hi = 0;
                    int wi = 0;
                    wi = width;
                    hi = height;
                    Size size = new Size(wi, hi);
                    //新建一个bmp图片
                    System.Drawing.Image bitmap = new Bitmap(size.Width, size.Height);
                    //新建一个画板
                    Graphics g = Graphics.FromImage(bitmap);
                    //设置高质量插值法
                    g.InterpolationMode = InterpolationMode.High;
                    //设置高质量,低速度呈现平滑程度
                    g.SmoothingMode = SmoothingMode.HighQuality;
                    //清空一下画布
                    g.Clear(Color.Blue);
                    //在指定位置画图
                    g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
                    if (ext == ".jpg" || ext == ".jpeg")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Jpeg);
                    if (ext == ".gif")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Gif);
                    if (ext == ".bmp")
                        bitmap.Save(path + "/small/" + datestr + ext, ImageFormat.Bmp);
                    ///大图片
                    if (fp.FileBytes.Length > 300000){
                      //image.Width
                       // image.Height


                        wi = 800;

                        hi = Convert.ToInt32(image.Height * (Convert.ToDouble(wi) / Convert.ToDouble(image.Width)));                
                         size = new Size(wi, hi);
                        //新建一个bmp图片
                      bitmap = new Bitmap(size.Width, size.Height);
                        //新建一个画板
                        g = Graphics.FromImage(bitmap);
                        //设置高质量插值法
                        g.InterpolationMode = InterpolationMode.High;
                        //设置高质量,低速度呈现平滑程度
                        g.SmoothingMode = SmoothingMode.HighQuality;
                        //清空一下画布
                        g.Clear(Color.Blue);
                        //在指定位置画图
                        g.DrawImage(image, new Rectangle(0, 0, bitmap.Width, bitmap.Height), new Rectangle(0, 0, image.Width, image.Height), GraphicsUnit.Pixel);
                        if (ext == ".jpg" || ext == ".jpeg")
                            bitmap.Save(originalFilename, ImageFormat.Jpeg);
                        if (ext == ".gif")
                            bitmap.Save(originalFilename, ImageFormat.Gif);
                        if (ext == ".bmp")
                            bitmap.Save(originalFilename, ImageFormat.Bmp);

                    }
                    else {
                        fp.SaveAs(originalFilename);
                    }
                    image.Dispose();
                    bitmap.Dispose();
                    g.Dispose();
                    #endregion
                    sqlfile = datestr + ext;

                    try
                    {
                        image.Dispose();
                        bitmap.Dispose();
                        g.Dispose();
                        File.Delete(tempFilePath);
                    }
                    catch (Exception ex)
                    {
                        string exc = ex.Message.ToString();
                        HttpContext.Current.Response.Write("<script>alert('" + exc + "');</script>");
                    }
                }
                else
                {
                    sqlfile = "";
                }
                sqlfile = sqlfile.Length>0?(tempSqlPath + "\\" + sqlfile):("");
                return sqlfile;
            }

  • 相关阅读:
    Oracle script to check the database growth
    VUE 项目本地没有问题,部署到服务器上提示错误
    Spring 最常用的几个注解
    Spring @Repository 注解
    VUE 如何将父组件中的数据传递到子组件中
    Spring @Autowired 注解静态变量
    VUE 如何格式化数字
    MySQL原理介绍
    大数据Hadoop之——DorisDB核心概念介绍与简单使用(StarRocks)
    Redis原理介绍
  • 原文地址:https://www.cnblogs.com/guozhe/p/2480227.html
Copyright © 2020-2023  润新知