zoukankan      html  css  js  c++  java
  • C# 将前端传来的图片文件分别以大图和缩略图保存

        HttpPostedFile pic_upload = Request.Files["file"];
          Bitmap bitmap = (Bitmap)System.Drawing.Image.FromStream(pic_upload.InputStream);
          Size s = new Size();
          s.Height = 50;
          s.Width = 50;
          System.Drawing.Image minImage =  clsPublic.GetImageThumb(bitmap, s);    

      //下面这部分不重要,主要内容是在上面,有缩略图和原图后,直接按照常规的方法进行保存即可

    string fileExtension = Path.GetExtension(pic_upload.FileName).ToLower();
    string filepath = "~/upload/" + kis_web.DBHelper.sAcctNumber + "/files/";//图片存储路径:uppad+账套编号+images
    string activitecode = Guid.NewGuid().ToString().Replace("-", "");
    if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹
    {
    Directory.CreateDirectory(Server.MapPath(filepath));
    }
    string virpath = filepath + activitecode + fileExtension;//这是存到服务器上的虚拟路径
    string virMinpath = filepath + activitecode+"_min" + fileExtension;

     转缩略图方法

      public static Bitmap GetImageThumb(Bitmap mg, Size newSize)
      {
        double ratio = 0d;
        double myThumbWidth = 0d;
        double myThumbHeight = 0d;
        int x = 0;
        int y = 0;
    
        Bitmap bp;
        if (newSize.Width == 0)
        {
          newSize.Width = 1;
        }
        if (newSize.Height == 0)
        {
          newSize.Height = 1;
        }
        if ((mg.Width / Convert.ToDouble(newSize.Width)) > (mg.Height /
        Convert.ToDouble(newSize.Height)))
          ratio = Convert.ToDouble(mg.Width) / Convert.ToDouble(newSize.Width);
        else
          ratio = Convert.ToDouble(mg.Height) / Convert.ToDouble(newSize.Height);
        myThumbHeight = Math.Ceiling(mg.Height / ratio);
        myThumbWidth = Math.Ceiling(mg.Width / ratio);
    
        Size thumbSize = new Size((int)newSize.Width, (int)newSize.Height);
        bp = new Bitmap(newSize.Width, newSize.Height);
        x = (newSize.Width - thumbSize.Width) / 2;
        y = (newSize.Height - thumbSize.Height);
        System.Drawing.Graphics g = Graphics.FromImage(bp);
        g.SmoothingMode = SmoothingMode.HighQuality;
        g.InterpolationMode = InterpolationMode.HighQualityBicubic;
        g.PixelOffsetMode = PixelOffsetMode.HighQuality;
        Rectangle rect = new Rectangle(x, y, thumbSize.Width, thumbSize.Height);
        g.DrawImage(mg, rect, 0, 0, mg.Width, mg.Height, GraphicsUnit.Pixel);
        return bp;
    
      }

    技术参考:https://www.cnblogs.com/zhangchaoran/p/7693166.html

  • 相关阅读:
    [LeetCode] Rotate Image
    [置顶] (奇迹冬瓜)坦克大战[MFC框架]
    spinner自定义,效果如腾讯QQ账号选择时候的下拉列表
    sqlmap dvwa SQL Injection使用小记
    Activex打包于发布完整版---微软证书制作
    假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。
    无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?
    EJB的优点有哪些?(选择2项)
    对触发器的认识;
    消耗资源的SQL的定位方法;
  • 原文地址:https://www.cnblogs.com/ncellit/p/10096639.html
Copyright © 2011-2022 走看看