在 .NET 中压缩图像

2023-12-14

我如何在 C# 中压缩图像文件(*bmp,*jpeg), 我必须在控件上显示一些图像作为背景,我使用以下代码来缩放图像

Bitmap orgBitmap = new Bitmap(_filePath);
Bitmap regBitmap = new Bitmap(reqSize.Width, reqSize.Height);

 using (Graphics gr = Graphics.FromImage(reqBitmap))
 {
  gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
  gr.DrawImage(bmp, new RectangleF(0, 0, reqSize.Width, reqSize.Height));
  }

它给了我所需的位图。 我的问题是,如果原始位图太重(2 MB),那么当我加载 50 个图像时,它会占用我所有的内存,我想在不损失太多质量的情况下尽可能多地压缩图像,我如何在 .网 ?


您确实需要在执行时显示大图像吗?您可以事先使用图像编辑程序(Photoshop、Paintshop Pro 等)调整它们的大小(或以稍低的质量保存它们)吗?每次运行时都做这些工作似乎没有什么意义——尤其是编辑工具无论如何都可能做得更好。

当然,如果用户从硬盘中选取任意图像,则这将不起作用。

另一点:当你使用完位图后,你会处理掉它们吗?您没有在代码中显示这一点...如果您不处理原始(大)位图,那么您将受到终结器的支配来释放非托管资源。终结器还将延迟这些对象的垃圾收集。

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

在 .NET 中压缩图像 的相关文章