我正在一个网站上工作,该网站将以格式,.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.
所以这给我留下了两个......我使用的压缩程序并不是很好,或者图像几乎已经被压缩了(...和我'我惊讶于压缩的窗户比7z好。
所以我的问题是,有没有办法减少由上面列出的图像格式组成的图像存档的文件大小?
答案 0 :(得分:4)
我正在使用的压缩程序很糟糕,或者图像几乎已经被压缩了
最常见的图像格式已经过压缩(PNG,JPEG等)。压缩文件两次几乎不会产生任何正面结果,很可能只会增加文件大小。
所以我的问题是,有没有办法减少由上面列出的图像格式组成的图像存档的文件大小?
不,不太可能。压缩文件最多可以提供一些,但你专注于图像本身,而不是压缩算法。 Robert Levy的帖子中提供了一些不错的选项。我用来删除元数据的工具是PNGOUT。
答案 1 :(得分:2)
大多数用户可能会上传已经完成基本压缩级别的文件,这就是为什么你没有看到大量的好处。有些用户可能正在上传未压缩的文件,但在这种情况下,您的尝试会产生影响。
也就是说,图像压缩应该被认为是来自普通文件压缩的唯一字段。普通文件压缩技术将“无损”,确保在文件未压缩时恢复文件的每个位 - 图像(和其他媒体)可以“有损”方式压缩,而不会将文件降级到不可接受的水平。
有一些专门的工具,您可以使用这些工具来删除元数据,应用轻微模糊,执行采样,降低质量,减少尺寸等。请在此处查看答案以获得一个好例子:{{ 3}}。最佳答案是将示例文件从264kb转换为170kb。