在保持质量的同时减小图像尺寸

Reduce image size while maintaining quality

如何在保持质量的同时将图像大小减小到 40 KB,并且图像尺寸大于 400 px,在 C# 中?

注意,被使用:

代码:

System.Drawing.Bitmap newImage = new System.Drawing.Bitmap(newWidth, newHeight); 
using (System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(newImage))
{
    gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
    gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
    gr.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
    gr.DrawImage(im3age, new System.Drawing.Rectangle(new System.Drawing.Point(0, 0), new System.Drawing.Size(newWidth, newHeight)));
    newImage.Save(FullPhat, System.Drawing.Imaging.ImageFormat.Jpeg);
}

您的解决方案将完全基于您选择的图像格式、压缩选项 select,最重要的是,图像本身的性质。

此任务的流行图像格式是 JPEG 或 PNG。这两种格式都使用图像中的颜色簇来实现压缩。这意味着,如果您的图片大部分是相同或相似的颜色,您将获得较小的文件大小,如果您的图片有很多分布的颜色,则文件大小会更大。

这里有一些例子:

(使用 Photoshop 保存的图像。PNG 使用最高压缩级别保存,JPEG 使用默认质量级别“8”、最高质量级别“12”和最低质量级别“1”保存。)

  • PNG: 4 KB
  • JPEG (8): 9 KB
  • JPEG (12): 15 KB
  • JPEG (1): 5 KB

  • PNG: 141 KB
  • JPEG (8): 378 KB
  • JPEG (12): 590 KB
  • JPEG (1): 146 KB

  • PNG: 341 KB
  • JPEG (8): 84 KB
  • JPEG (12): 274 KB
  • JPEG (1): 22 KB

如您所见,相同分辨率的不同类型的图像会产生截然不同的文件大小,JPEG 并不总是比 PNG 好,反之亦然。一些 JPEG 图片低于您的标准,但请记住,它们是以最差的质量设置保存的,因此图片看起来像垃圾。

那么,一般规则是 400x400 像素的图像,以完美的无损质量保存在 40 KB 以下的文件中...除非图像主要是单一的纯色,否则不会发生这种情况.