如何压缩jpg图像?

2023-12-06

我有 jpg 图像格式,大小为 3300K。

我尝试压缩图像=>所以我改变了图像大小,但我的文件仍然很大(〜800K)

改变尺寸方法代码:

    internal static Image resizeImage( Image imgToResize )
    {
        Bitmap b = new Bitmap( 300, 300 );

        using( Graphics g = Graphics.FromImage( ( Image )b ) )
        {
            //g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.InterpolationMode = InterpolationMode.Low;

            g.DrawImage( imgToResize, 0, 0, 300, 300 );

            imgToResize.Dispose();
        }

        return ( Image )b;
    }

我必须压缩图像 - 即使图像的质量会低于原始图像。

我该怎么做 ?


毫克=图像

新闻大小 = 高度和宽度

使用以下代码调用 Resize 函数

Bitmap mg = new Bitmap(strUploadPath);
Size newSize = new Size(Convert.ToInt32(DispMaxWidth), Convert.ToInt32(DispMaxHeight));
Bitmap bp = ResizeImage(mg, newSize);
if (bp != null)
bp.Save(strUploadPath, System.Drawing.Imaging.ImageFormat.Jpeg);

private Bitmap ResizeImage(Bitmap mg, Size newSize)
        {
            double ratio = 0d;
            double myThumbWidth = 0d;
            double myThumbHeight = 0d;
            int x = 0;
            int y = 0;

            Bitmap bp;

            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)myThumbWidth, (int)myThumbHeight);
            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);
            // Had to add System.Drawing class in front of Graphics ---
            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;

        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何压缩jpg图像? 的相关文章

随机推荐

  • 合并配置单元中的两列并在运算符之间使用

    我在配置单元中有一个带有列的登录详细信息表 日期 时间 用户 我正在尝试编写一个查询 它可以选择在两个日期之间登录的用户 同时也考虑到时间 例如 我想知道在这段时间里登录过的用户10 12 2012 02 30 00 and 28 12 2
  • 如何将包含 HTML 实体和无效字符的文本转换为其 UTF-8 等效项?

    我正在更改标题 因为我不知道特殊的破损窗口字符给我带来了问题 使问题看起来像重复的 如何转换 HTML 实体 0 9 类型的字符引用和 a fA F0 9 无效的字符引用 和无效的 Windows 字符 chr 151 到其 UTF 8 等
  • PHP磁盘总空间

    我需要有关 disk total space 函数的帮助 我的代码中有这个 Name Email Diskspace Available
  • 检测草地图像中的植物

    我是计算机视觉领域的新手 我想检测草地图像中的某种植物 Original Image Canny Edge Detection Algorithmus Hough Line Transform After Edge Detection 我已
  • 如何在Web服务器上获取用户的IP地址?

    我在将用户的 IP 地址获取到 Web 服务器时遇到问题 我正在使用这段代码 To get the local IP address string sHostName Dns GetHostName IPHostEntry ipE Dns
  • JavaScript 中的串联继承与类继承

    当我一开始看到连接继承时 它对我来说就像一个组合 但人们一直将其命名为继承 然而 类使用原型来创建将对象连接在一起的原型链 现在的问题是 如果串联继承和类继承都做同样的事情 该使用哪一个 这是两种情况的示例串联继承 function Per
  • Reactjs 中的 HTML 表格行跨度

    当我使用地图并想要制作这样的表格时我很困惑 有数据 const arr no 1 name david fruit apple type typeName red apple typeName green apple no 2 name d
  • 在 C# 中将包含多个 XML 文件的单个大文件读取到多个 xml 记录中

    我有一个文件 它实际上包含多个相同格式的 XML 文件 因此该文件本身不是有效的 XML 例如
  • ASP.NET自定义控件,模板字段可以有属性吗?

    例如
  • 在Python中使用更多的小数

    我已经有一个使用二分法来确定某个值的代码 问题是我需要一个如此精确的值 超过 15 位小数 并且在某些时候 python 停止获取更小的数字 我知道 Decimals 库 但是我真的必须将代码中的每个参数重写为 Decimals param
  • C++ 函数模板格式

    只是有一个关于类模板的问题 对于以下代码 该函数运行完全正常 但我很困惑为什么 如何在不提供迭代器的类 类型的情况下运行填充函数 为什么不需要提供迭代器类型 include
  • 卡方测试错误“卡方近似可能不正确”

    我在 R 中进行了卡方检验 结果是 crianza matrix c 1 1 0 12 12 7 2 1 0 0 1 0 0 0 5 0 0 0 1 1 2 0 0 3 0 0 0 13 35 29 0 0 1 10 0 0 1 0 0 0
  • firebase createUserWithEmailAndPassword 在 Android 中不起作用

    我正在尝试使用createUserWithEmailAndPassword方法创建用户但无法这样做 正在调用 OnAuthenticate 方法 但用户对象为 null 并且在 firebase 控制台内没有创建用户 这是我的代码 也是在线
  • 无法看到经典 asp 网站上的错误

    我正在尝试将某些站点从 Windows 2003 Server 迁移到 2008 某些站点在我访问时显示空白页面 显然有错误 但我看不到任何东西 我已经启用了客户端错误和详细错误页面 但没有运气 任何想法 所以只是为了确保你做了所有这些 在
  • jquery 加载器小部件未显示

    我在函数调用期间通过 Ajax 调用使用 Jquery 移动加载器小部件LoadingData它应该显示加载掩码 但它没有显示任何加载掩码 完成后直接弹出结果 我的代码如下 document on pageinit function aja
  • Spring WebClient - 在发生 HTTP 错误(4xx、5xx)时如何访问响应正文?

    我想将异常从 数据库 REST API 重新抛出到 后端 REST API 但我丢失了原始异常的消息 这是我通过 Postman 从 数据库 REST API 获得的信息 timestamp 2020 03 18T15 19 14 273
  • 在 PHP 中使用系统的时区设置

    所以我有一个用 PHP 编写的 Web 应用程序 它将在世界各地的不同 Ubuntu 服务器上运行 有些服务器将配置为在本地时间运行 有些将在 UTC 运行 这取决于客户 虽然我可以编辑 php ini 文件并设置 date timezon
  • 当在地图视图上点击注释时将数据传递到详细视图

    我有一个地图视图 其中有 10 个商店位置 数据来自网络服务 我只想推送到我的详细视图以显示所单击商店的地址 电话和其他信息 我需要将数据传递给我的detailview当用户点击或触摸 Mapkit 上的注释时 我的有10个注释mapvie
  • java如何隐式创建对象?就像 String 类的情况一样

    我无法理解如何隐式创建对象 例子 String s implicit instantiation 我可以创建自己的类 其对象可以隐式创建吗 不 字符串实例化是由编译器隐式处理的 只有 String 和 Array 类具有此属性 String
  • 如何压缩jpg图像?

    我有 jpg 图像格式 大小为 3300K 我尝试压缩图像 gt 所以我改变了图像大小 但我的文件仍然很大 800K 改变尺寸方法代码 internal static Image resizeImage Image imgToResize