如何压缩图像?

时间:2011-06-21 08:20:07

标签: c# image

我的图像压缩有问题。我需要将大量文件(700-900kb)压缩到文件70-80kb而不需要 质量下降。 (或小损失)我在Photoshop中找到了菜单项“Save for Web& Devices ...”。它很棒。 但我不想以编程方式使用photoshop。可能有人知道如何解决这个问题 其他第三方组件或框架?

感谢您的任何想法!

4 个答案:

答案 0 :(得分:1)

.NET有许多图像解码/编码库,通常与特定的GUI框架相关联(例如,在Windows窗体中,您有System.Drawing.Image,对于WPF,请参阅msdn上的Imaging Overview章节)。

您还可以在线找到专门从事图像转换/压缩的第三方图书馆(免费和非免费)

通常,压缩图像所节省的数量很大程度上取决于原始格式。如果你已经拥有正常压缩的JPEG照片(质量为85%),那么除了调整它们的大小之外,你可以做的很少。如果您有原始位图(例如BMP,未压缩/低压缩TIFF等),那么大多数压缩格式可以节省大量成本

选择图像格式时,请考虑以下事项:

  • 照片和类似:JPEG通常会很好。良好的储蓄和合理的质量损失
  • 屏幕截图和类似:PNG通常会给出最好的结果(PNG是无损的)。 JPEG通常会在屏幕截图上创建高度可见的工件

使用ZIP或RAR等通用压缩算法压缩已压缩的图像(即PNG,JPEG等)实际上不会给您带来任何节省。实际上你可能会得到一个更大的文件。

答案 1 :(得分:0)

您可以查看FreeImage项目。它有一个可以使用的C#包装器。

答案 2 :(得分:0)

Imagemagick允许您对文件进行批处理,并提供在处理图像时可能要求的所有内容

E.g。将文件夹中的每个图像(销毁原件)调整为QVGA

mogrify -resize 320x240 *.jpg

保持宽高比吗

mogrify -resize 320x240! *.jpg

如果您需要遍历目录结构,这就是在基于* nix的系统中执行此操作的方法(也会破坏原件)

find . -type f -name *.jpg -exec convert -resize 800x800 {} \;

还有一个质量开关,请参阅here

答案 3 :(得分:0)