• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

C#压缩图片

武飞扬头像
一条狗的离别
帮助1

SqlSer数据库设置保存图片字段类型为Image类型

对应保存

学新通

方法参数为图片路径压缩后路径压缩最大宽度压缩最大高度

 学新通

引用类型using System.Data; using System.Drawing; using System.IO;

学新通

\完整类

/// <summary>

        /// 按比例缩放,图片不会变形,会优先满足原图和最大长宽比例最高的一项

        /// </summary>

        /// <param name="oldPath">图片路径</param>

        /// <param name="newPath">压缩后路径</param>

        /// <param name="maxWidth">压缩最大宽度</param>

        /// <param name="maxHeight">压缩最大高度</param>

        public static void CompressPrecent(string oldPath, string newPath, int maxWidth, int maxHeight)

        {

            System.Drawing.Image _sourceImg = System.Drawing.Image.FromFile(oldPath);

            double _newW = maxWidth;

            double _newH = maxWidth;

            double percentWidth = (double)_sourceImg.Width > maxWidth ? maxWidth : _sourceImg.Width;

            if (_sourceImg.Height * (double)percentWidth / _sourceImg.Width > maxHeight)

            {

                _newH = maxHeight;

                _newW = maxHeight / (double)_sourceImg.Height * _sourceImg.Width;

            }

            else

            {

                _newW = percentWidth;

                _newH = (percentWidth / _sourceImg.Width) * _sourceImg.Height;

            }

            System.Drawing.Image bitmap = new Bitmap((int)_newW, (int)_newH);

            Graphics g = Graphics.FromImage(bitmap);

            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            g.Clear(System.Drawing.Color.Transparent);

            g.DrawImage(_sourceImg, new System.Drawing.Rectangle(0, 0, (int)_newW, (int)_newH),

                new System.Drawing.Rectangle(0, 0, _sourceImg.Width, _sourceImg.Height), GraphicsUnit.Pixel);

            _sourceImg.Dispose();

            g.Dispose();

            bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg);

            bitmap.Dispose();

        }

初来乍到,请多多指教,大神勿喷。若有错误之处,欢迎指导

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgheieg
系列文章
更多 icon
同类精品
更多 icon
继续加载