全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C#无损压缩图片

话不多说,请看代码:

/// <summary>
    /// 根据指定尺寸得到按比例缩放的尺寸,返回true表示以更改尺寸
    /// </summary>
    /// <param name="picWidth">图片宽度</param>
    /// <param name="picHeight">图片高度</param>
    /// <param name="specifiedWidth">指定宽度</param>
    /// /// <param name="specifiedHeight">指定高度</param>
    /// <returns>返回true表示以更改尺寸</returns>
    private bool GetPicZoomSize(ref int picWidth, ref int picHeight, int specifiedWidth, int specifiedHeight)
    {
      int sW = 0, sH = 0;
      Boolean isZoomSize = false;
      //按比例缩放
      Size tem_size = new Size(picWidth, picHeight);
      if (tem_size.Width > specifiedWidth || tem_size.Height > specifiedHeight) //将**改成c#中的或者操作符号
      {
        if ((tem_size.Width * specifiedHeight) > (tem_size.Height * specifiedWidth))
        {
          sW = specifiedWidth;
          sH = (specifiedWidth * tem_size.Height) / tem_size.Width;
        }
        else
        {
          sH = specifiedHeight;
          sW = (tem_size.Width * specifiedHeight) / tem_size.Height;
        }
        isZoomSize = true;
      }
      else
      {
        sW = tem_size.Width;
        sH = tem_size.Height;
      }
      picHeight = sH;
      picWidth = sW;
      return isZoomSize;
    }
    /// <summary>
    /// 无损压缩图片
    /// </summary>
    /// <param name="sFile">原图片</param>
    /// <param name="dFile">压缩后保存位置</param>
    /// <param name="dHeight">高度</param>
    /// <param name="dWidth">宽度</param>
    /// <param name="flag">压缩质量 1-100</param>
    /// <returns></returns>

    public bool GetPicThumbnail(string sFile, string dFile, int dHeight, int dWidth, int flag)
    {
      System.Drawing.Image iSource = System.Drawing.Image.FromFile(sFile);
      ImageFormat tFormat = iSource.RawFormat;
      int sW = iSource.Width, sH = iSource.Height;

      GetPicZoomSize(ref sW, ref sH, dWidth, dHeight);

      Bitmap ob = new Bitmap(dWidth, dHeight);
      Graphics g = Graphics.FromImage(ob);
      g.Clear(Color.WhiteSmoke);
      g.CompositingQuality = CompositingQuality.HighQuality;
      g.SmoothingMode = SmoothingMode.HighQuality;
      g.InterpolationMode = InterpolationMode.HighQualityBicubic;
      g.DrawImage(iSource, new Rectangle((dWidth - sW) / 2, (dHeight - sH) / 2, sW, sH), 0, 0, iSource.Width, iSource.Height, GraphicsUnit.Pixel);
      g.Dispose();
      //以下代码为保存图片时,设置压缩质量
      EncoderParameters ep = new EncoderParameters();
      long[] qy = new long[1];
      qy[0] = flag;//设置压缩的比例1-100
      EncoderParameter eParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qy);
      ep.Param[0] = eParam;
      try
      {
        ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();

        ImageCodecInfo jpegICIinfo = null;

        for (int x = 0; x < arrayICI.Length; x++)
        {
          if (arrayICI[x].FormatDescription.Equals("JPEG"))
          {
            jpegICIinfo = arrayICI[x];
            break;
          }
        }
        if (jpegICIinfo != null)
        {
          ob.Save(dFile, jpegICIinfo, ep);//dFile是压缩后的新路径
        }
        else
        {
          ob.Save(dFile, tFormat);
        }
        return true;
      }
      catch
      {
        return false;
      }
      finally
      {
        iSource.Dispose();
        ob.Dispose();
      }
    }

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# c#  # 压缩图片  # C#实现无损压缩图片代码示例  # C#无损高质量压缩图片代码  # C#无损高质量压缩图片实现代码  # C#实现无损压缩图片的示例详解  # 按比例  # 多说  # Height  # Width  # return  # sFile  # tem_size  # Boolean  # sH  # isZoomSize  # Size  # false  # dFile  # string  # GetPicThumbnail  # System  # Image  # Drawing  # dWidth  # dHeight 


相关文章: 魔方云NAT建站如何实现端口转发?  教学网站制作软件,学习*后期制作的网站有哪些?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何快速启动建站代理加盟业务?  如何高效利用亚马逊云主机搭建企业网站?  TestNG的testng.xml配置文件怎么写  高端云建站费用究竟需要多少预算?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  如何规划企业建站流程的关键步骤?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  建站之星×万网:智能建站系统+自助建站平台一键生成  如何制作网站标识牌,动态网站如何制作(教程)?  如何通过VPS建站实现广告与增值服务盈利?  常州自助建站:操作简便模板丰富,企业个人快速搭建网站  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  制作旅游网站html,怎样注册旅游网站?  如何通过云梦建站系统实现SEO快速优化?  如何高效配置IIS服务器搭建网站?  网站app免费制作软件,能免费看各大网站视频的手机app?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  常州企业建站如何选择最佳模板?  安云自助建站系统如何快速提升SEO排名?  个人网站制作流程图片大全,个人网站如何注销?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  建站之星官网登录失败?如何快速解决?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  如何通过西部数码建站助手快速创建专业网站?  如何用VPS主机快速搭建个人网站?  建站之星如何实现PC+手机+微信网站五合一建站?  Python多线程使用规范_线程安全解析【教程】  定制建站流程解析:需求评估与SEO优化功能开发指南  太原网站制作公司有哪些,网约车营运证查询官网?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  建站之星微信建站一键生成小程序+多端营销系统  攀枝花网站建设,攀枝花营业执照网上怎么年审?  建站之星展会模板:智能建站与自助搭建高效解决方案  已有域名和空间,如何快速搭建网站?  如何在Windows 2008云服务器安全搭建网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  建站之星代理平台如何选择最佳方案?  完全自定义免费建站平台:主题模板在线生成一站式服务  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  如何通过VPS搭建网站快速盈利?  网站设计制作企业有哪些,抖音官网主页怎么设置?  如何通过主机屋免费建站教程十分钟搭建网站?  如何用PHP快速搭建高效网站?分步指南  如何在阿里云ECS服务器部署织梦CMS网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。