如何压缩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图像? 的相关文章

  • 仅使用扩展方法在 Linq 中进行漂亮、干净的交叉连接 [重复]

    这个问题在这里已经有答案了 可能的重复 使用扩展方法表示的嵌套 from LINQ 查询 https stackoverflow com questions 9115675 nested from linq query expressed
  • 运行 t4 脚本作为 resx 文件的自定义工具

    我有一个资源文件MyResource resx 我想改变MyResource Designer cs文件生成 我有一个 t4 脚本 它接受 resx 文件作为输入并给出结果转换 但是 我必须手动运行此 t4 才能使其工作 我看到 resx
  • 对静态成员变量的未定义引用

    我有一个有静态成员的类 它也是我的程序中其他几个类的基类 这是它的头文件 ifndef YARL OBJECT HPP define YARL OBJECT HPP namespace yarlObject class YarlObject
  • Linux 使用 boost asio 拒绝套接字绑定权限

    我在绑定套接字时遇到问题 并且以用户身份运行程序时权限被拒绝 这行代码会产生错误 acceptor new boost asio ip tcp acceptor io boost asio ip tcp endpoint boost asi
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • 命名空间“Microsoft”中不存在类型或命名空间名称“Practices”

    我正在使用 Microsoft Visual Studio 2005 for c 我的代码中有以下命名空间 using Microsoft Practices EnterpriseLibrary using Microsoft Practi
  • C for 循环索引:新 CPU 中的前向索引更快吗?

    在我订阅的邮件列表上 两位知识渊博的 IMO 程序员正在讨论一些优化的代码 并说了以下内容 在 5 8 年前发布的 CPU 上 向后迭代 for 循环稍微快一些 e g for int i x 1 i gt 0 i 因为比较i归零比将其与其
  • 本地主机上的 .net HTTP_X_FORWARDED_FOR NULL

    抱歉 如果其他地方已经回答了这个问题 我找不到它 如果没有 我会尝试查找访问过该站点的机器的原始 IP 根据我的基本理解 变量HTTP X FORWARDED FOR无论代理和其他过滤器如何 都会显示用户的 IP 如果这是真的 我正在尝试对
  • 带有自定义鉴别器的 EntityFramework Code First 继承

    我正在尝试在 EntityFramework Code First 中映射以下继承 public class Member public string ProjectName get set public string AssemblyNa
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • 如何解决内存碎片

    我们偶尔会遇到这样的问题 长时间运行的服务器进程 在 Windows Server 2003 上运行 由于内存分配失败而引发异常 我们怀疑这些分配由于内存碎片而失败 因此 我们一直在寻找一些可能对我们有帮助的替代内存分配机制 我希望有人能告
  • 修改代码以从 Windows 中的 PE 可执行文件检索双重签名信息?

    我已经挣扎了一段时间想要修改这段代码示例 https support microsoft com en us help 323809 how to get information from authenticode signed execu
  • 未找到 _sqlite3_open 等符号错误

    您好 我收到此错误 Undefined symbols sqlite3 open referenced from main in ccRlWVer o sqliite3 close referenced from main in ccRlW
  • OpenGL 计算着色器调用

    我有一个与新计算着色器相关的问题 我目前正在研究粒子系统 我将所有粒子存储在着色器存储缓冲区中 以便在计算着色器中访问它们 然后我派遣一个一维工作组 define WORK GROUP SIZE 128 shaderManager gt u
  • 获取会议组织者邮件地址 EWS API

    我想使用 EWS API 获取会议组织者的邮件地址 目前 我刚刚获得约会项目的一些属性 我听说你可以设置你想要获取哪些属性 我的代码看起来像这样 CalendarView cview new CalendarView start end c
  • 清理堆分配对象的良好实践或约定?

    我正在学习C 我有 C C ObjC 背景 相当高级的语言 在 C 或 ObjC 上 作为函数或方法的结果返回堆分配的对象是很简单的 因为对象的清理是受管理的 按照惯例 会在适当的时候销毁 但我不知道在 C 中应该如何处理这个问题 例如 s
  • 如何从尖点库矩阵格式获取原始指针

    我需要从尖点库矩阵格式获取原始指针 例如 cusp coo matrix
  • C# amo 获取角色完整

    我正在开发一个 SSAS 项目 其中除其他事项外 我需要获取 C 中表格多维数据集的完整用户列表 目前我让它以这样的方式工作 我可以获得角色 但数据不完整 当我调用 Server Database Roles 为了便于阅读而简化 属性并枚举

随机推荐

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

    我在配置单元中有一个带有列的登录详细信息表 日期 时间 用户 我正在尝试编写一个查询 它可以选择在两个日期之间登录的用户 同时也考虑到时间 例如 我想知道在这段时间里登录过的用户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