C# 简单图像调整大小:文件大小不缩小

2023-12-06

我对下面的代码有疑问。我下面的代码成功地运行了一个目录,并将图片的分辨率设置为较小的尺寸。但是,文件大小不会改变。例如,尺寸为 2400x1800、文件大小为 1.5MB 的图像将缩放至 800x600,但 800x600 图片的文件大小仍为 1.5MB。我想我可能必须明确压缩图片,但我不确定。有任何想法吗?

private void Form1_Load(object sender, EventArgs e)
        {
            string[] files = null;
            int count = 0;
            files = System.IO.Directory.GetFiles(@"C:\Users\..\..\ChristmasPicsResized");
            foreach (string file in files)
            {
                System.Drawing.Bitmap bmp = System.Drawing.Bipmap.FromFile(file);

                ResizeBitmap(bmp, 807, 605).Save(
                     @"C:\users\..\..\TempPicHold\Pic" + count.ToString() + ".jpg");
                count++;
            }
        }
        public Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
        {
            Bitmap result = new Bitmap(nWidth, nHeight);
            using (Graphics g = Graphics.FromImage((Image)result))
                g.DrawImage(b, 0, 0, nWidth, nHeight);
            return result;
        }

发现问题了。感谢@yetapb 显示了更清晰的代码版本,但这仍然不起作用。问题的答案是我需要明确指定图像保存的文件类型。我的猜测是,因为我没有明确指定图像格式,所以没有相应地处理图像压缩。位图只是以较小的分辨率保存,并在其上添加了“.jpg”,并且没有相应地压缩。下面的代码现在可以工作了。

            files = System.IO.Directory.GetFiles(@"C:\PicFolder");
            for (string file in files)
            {
            Bitmap tempBmp = new Bitmap(file);
            Bitmap bmp = new Bitmap(tempBmp, 807, 605);

            bmp.Save(
            @"C:\NewPicFolder\Pic" + count + ".jpg",
            System.Drawing.Imaging.ImageFormat.Jpeg);
            count++;
            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 简单图像调整大小:文件大小不缩小 的相关文章

  • 静态构造函数和 BeforeFieldInit?

    如果类型没有静态构造函数 则将执行字段初始值设定项 就在使用该类型之前 或者在某个时间点突发奇想 运行时 为什么这段代码 void Main start Dump Test EchoAndReturn Hello end Dump clas
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 在 Mono 中反序列化 JSON 数据

    使用 Monodroid 时 是否有一种简单的方法可以将简单的 JSON 字符串反序列化为 NET 对象 System Json 只提供序列化 不提供反序列化 我尝试过的各种第三方库都会导致 Mono Monodroid 出现问题 谢谢 f
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • OpenGL:如何检查用户是否支持glGenBuffers()?

    我检查了文档 它说 OpenGL 版本必须至少为 1 5 才能制作glGenBuffers 工作 用户使用的是1 5版本但是函数调用会导致崩溃 这是文档中的错误 还是用户的驱动程序问题 我正在用这个glGenBuffers 对于VBO 我如
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • MySQL 连接器 C++ 64 位在 Visual Studio 2012 中从源代码构建

    我正在尝试建立mySQL 连接器 C 从源头在视觉工作室2012为了64 bit建筑学 我知道这取决于一些boost头文件和C 连接器 跑步CMake生成一个项目文件 但该项目文件无法编译 因为有一大堆非常令人困惑的错误 这些错误可能与包含
  • SQLAPI++ 的免费替代品? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何免费 也许是开源 的替代品SQLAPI http www sqlapi com 这个库看起来
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 读取依赖步行者输出

    I am having some problems using one of the Dlls in my application and I ran dependency walker on it i am not sure how to
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • C++ 指针引用混淆

    struct leaf int data leaf l leaf r struct leaf p void tree findparent int n int found leaf parent 这是 BST 的一段代码 我想问一下 为什么
  • 如何在C#中控制datagridview光标移动

    我希望 datagridview 光标向右移动到下一列 而不是在向单元格输入数据后移动到下一行 我试图通过 dataGridView1 KeyDown 事件捕获键来控制光标 但这并不能阻止光标在将数据输入到单元格后移动到下一行 提前感谢你的
  • C:设置变量范围内所有位的最有效方法

    让我们来int举个例子 int SetBitWithinRange const unsigned from const unsigned to To be implemented SetBitWithinRange应该返回一个int其中所有
  • 构建 C# MVC 5 站点时项目之间的处理器架构不匹配

    我收到的错误如下 2017 年 4 月 20 日构建 13 23 38 C Windows Microsoft NET Framework v4 0 30319 Microsoft Common targets 1605 5 警告 MSB3
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 如何从 Windows Phone 7 模拟器获取数据

    我有一个 WP7 的单元测试框架 它在手机上运行 结果相当难以阅读 因此我将它们写入 XDocument 我的问题是 如何才能将这个 XML 文件从手机上移到我的桌面上 以便我可以实际分析结果 到目前为止 我所做的是将 Debugger B
  • 如何组合两个 lambda [重复]

    这个问题在这里已经有答案了 可能的重复 在 C 中组合两个 lambda 表达式 https stackoverflow com questions 1717444 combining two lamba expressions in c
  • winform c# 中的弹出窗口

    我正在开发一个需要弹出窗口的项目 但问题是我还希望能够通过表单设计器在此弹出窗口中添加文本框等 所以基本上我有一个按钮 当您单击它时 它将打开我在表单设计器中设计的另一个窗口 我一直在谷歌搜索 但还没有找到我需要的东西 所以我希望你们能帮助

随机推荐

  • Android:当我尝试安装签名的应用程序时,它显示“应用程序未安装”

    当我尝试安装签名的 apk 文件时 应用程序安装程序显示 应用程序未安装 我制作的每个应用程序都会发生这种情况 即使我创建一个全新的密钥库 或者将构建模式设置为调试 虽然如果我通过 Android Studio 安装它确实可以工作 但如果我
  • SignalR 用于跟踪在线用户和聊天

    我们正在开发一个社交网络应用程序 并将实现一些新功能 1 追踪在线用户 2 聊天 一对一聊天 后来群聊 我研究过 SingalR 它看起来很有前途 我们正在使用 ASP NET MVC 3 并正在考虑使用集线器 我首先的问题是 Signal
  • 查找表中与特定数字最接近的数字

    我有一个数字表 我想找到与特定数字最接近的数字并更改其颜色 朋友们 这怎么办 function Cf td each function let v s1 val if this innerHTML
  • 在 JavaScript 中获取对象变量名称

    我正在创建 JavaScript 代码 并且遇到了一种情况 我想在对象方法中读取对象名称 字符串 我想要实现的示例代码如下所示 Define my object var TestObject function return getObjec
  • 未捕获的类型错误:对象 # 没有方法“addEventListener”

    我在一个相对简单的 HTML 文件中有一个按钮元素 我正在尝试添加事件侦听器 但不断收到错误 我不知道为什么 Uncaught TypeError Object
  • 如何在空行上分解字符串? [复制]

    这个问题在这里已经有答案了 我正在努力寻找解决方案 如何分解下面的数据样本数据 2013 Fondermann LP Hold your Ground LP 2012 Zwo 80 MiniLP Sassy Society Demo Pog
  • Spring JPA如何确保数据写入持久存储

    我试图扩展这个例子 https github com scratches jpa method security sample通过在控制器中添加一个方法来 注册 其中新用户会动态添加到存储库中 默认的现有用户集添加到 import sql
  • Java 的 HTML/XML 解析器 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 哪些 HTML 解析器具有
  • 如何使用OpenCv叠加图像?

    如何叠加两个图像 本质上 我有一个没有 Alpha 通道的背景 以及一张或多张具有 Alpha 通道的图像 需要彼此叠加 我尝试了以下代码 但叠加结果很糟糕 create our out image Mat merged info widt
  • 南特邮件问题

    任何人都可以建议我如何配置通过 nant 发送邮件 我什至浏览了该链接 但没有成功 感谢致敬 麦迪 您将使用类似这样的东西
  • 类型“...”没有定义构造函数

    我注意到编译器错误类型 没有定义构造函数当我错误地尝试实例化特定类时生成 这让我想知道我将如何编写自己的类 当有人试图实例化它时 该类会沉淀此消息 那么下面的代码 我需要做什么MyClass namespace MyNamespace cl
  • 如何使用 JS 更改 @keyframes? [复制]

    这个问题在这里已经有答案了 我在用着 progressBar background color 247BA0 width 150px padding 10px border radius 5px animation progressBar
  • Oracle 中的重音和大小写不敏感 COLLATE 等效项

    在 Microsoft SQL Server 中 如果我想在区分大小写的数据库中不区分大小写地搜索 我可以运行以下 SQL SELECT FROM MyTable WHERE MyField BobDillon COLLATE Latin1
  • 空手道 - 无法循环运行动态场景大纲

    这是我的功能文件 它只加载 json 文件并想要迭代相同的文件 Background def kittens read json test json Scenario Outline cat name
  • 类型错误:传递给 Series.__format__ 的格式字符串不受支持

    我试图在我的仪表卡上添加千位分隔符 但我所有的努力都是徒劳的 发现这个解决方案更准确 但它给了我一个错误 类型错误 传递给系列的格式字符串不受支持 format app callback Output sls children Output
  • 在 RDLC 中将表包装为多列

    需要为 RDLC 报告生成动态列表 名称 页码 但我需要将它包装成这样的三列 有什么解决办法吗 我会建立一个这样的矩阵 行组基于表达式 Ceiling RowNumber Nothing 3 列组基于表达式 RowNumber Nothin
  • 如何在 Visual Studio Code 中打开交互式 shell/REPL?

    我正在使用 Visual Studio Code 并且我想要一个可以在其中运行单个 Python 指令的 REPL 我发现了一些一年前的微软文档上面显示选择 视图 gt 其他 Windows gt 交互式 菜单项 但我的 VS Code 版
  • 如何从查询中获取结果,其中第一列在更改之前不会重复其值

    我有一个仅返回几行的查询 但我需要以这样的方式对结果进行分组 使得前两列在其值发生变化之前不会重复 让我告诉你我的意思 这样会更容易 这是查询 select isnull d FirstName isnull d LastName as C
  • Internet Explorer 中的 JavaScript 数组索引“未定义”

    以下脚本打印不明确的字符串中每个字符的控制台 但在 Chrome 中可以正常工作 我是否必须对数组进行一些操作才能使其在所有浏览器中正常工作 The 部分浏览器支持 但并非全部 类似数组的字符访问 上面的第二种方式 不属于 ECMAScri
  • C# 简单图像调整大小:文件大小不缩小

    我对下面的代码有疑问 我下面的代码成功地运行了一个目录 并将图片的分辨率设置为较小的尺寸 但是 文件大小不会改变 例如 尺寸为 2400x1800 文件大小为 1 5MB 的图像将缩放至 800x600 但 800x600 图片的文件大小仍