【问题标题】:Compressing images, is there a point?压缩图像,有什么意义吗?
【发布时间】:2015-02-10 00:11:33
【问题描述】:

我正在开发一个网站,该网站将托管数千个用户上传的 .png、.jpeg 和 .gif 格式的图像。

由于会有如此大量的图像,因此每个文件仅节省几 kb 的空间最终将意味着相当多的总存储需求。

我的第一个想法是在存储文件的文件夹上启用 Windows 文件夹压缩(使用 Windows / IIS 服务器)。在总共 1Gb 的数据上,节省的总空间约为 200kb。

这对我来说似乎是一个糟糕的结果。因此,我去检查是否可以调整 windows 文件夹压缩,但根据这篇文章它不能是:NTFS compressed folders

我的下一个想法是,我可以使用诸如Seven Zip Sharp 之类的库在保存文件时单独压缩文件。但在我这样做之前,我在几张图像上测试了几个不同的压缩程序。

7Mb .gif 上的结果是这样的

7z, Compress to .z7 = 1kb space saved  
7z, Compress to .zip = 2kb space INCREASE  
windows, native zip = 4kb space saved.

所以这给我留下了两个想法..我使用的压缩程序不是很好,或者图像已经尽可能压缩了(..我很惊讶内置的 windows压缩比7z好)。

所以我的问题是,有什么方法可以减小由上面列出的图像格式组成的图像存档的文件大小?

【问题讨论】:

  • 您基本上只能压缩额外的:路径和图像标题。休息(数据)已经被压缩。使用更先进的压缩技术可以压缩更多,但不要期望任何合理的东西。如果你有bmp 文件,那么是的,压缩文件夹会做得很好。但是,如果您不关心原始文件的内容,那么将 bmp 转换为 jpg/png 可能会给您带来比普通的 zip 更多的信息。如果你已经有 jpg/png,那么你什么都做不了

标签: c# windows image .net-4.5


【解决方案1】:

我正在使用的压缩程序很糟糕,或者图像几乎已经被压缩到尽可能的程度

大多数常见的图像格式已经被压缩(PNG、JPEG 等)。压缩文件两次几乎不会产生任何积极的结果,很可能只会增加文件大小。

所以我的问题是,有什么方法可以减小由上面列出的图像格式组成的图像存档的文件大小?

不,不太可能。压缩文件最多可以提供更多,但您专注于图像本身,而不是压缩算法。 Robert Levy 的帖子中提供了一些不错的选择。我用来去除元数据的工具是PNGOUT

【讨论】:

  • 他只需要使用那些patented compression algorithms 之一,它总是会导致文件更小。 :)
  • @DarkFalcon 我有一个压缩算法,可以将任何文件压缩到一个位...我目前唯一的问题是解压缩算法:-)
【解决方案2】:

大多数用户可能会上传已经完成基本压缩级别的文件,这就是为什么您没有看到很多好处的原因。一些用户可能会上传未压缩的文件,但在这种情况下,您的尝试会有所作为。

也就是说,图像压缩应该被认为是普通文件压缩的​​一个独特领域。正常的文件压缩技术将是“无损”的,确保在文件未压缩时恢复文件的每一位 - 图像(和其他媒体)可以以“有损”方式压缩,而不会将文件降级到不可接受的水平。

您可以使用一些专门的工具来执行诸如去除元数据、应用轻微模糊、执行采样、降低质量、减小尺寸等操作。请查看此处的答案以获得一个很好的示例:@987654321 @。最佳答案将示例文件从 264kb 变为 170kb。

【讨论】:

  • 好点。 +1。我确实考虑过调整图像大小,但这并不是一个真正的解决方案。不过其他选项都不错。
猜你喜欢
  • 2011-03-15
  • 2011-05-04
  • 1970-01-01
  • 1970-01-01
  • 2016-09-16
  • 2010-09-23
  • 2020-02-29
  • 1970-01-01
相关资源
最近更新 更多