我正在开发一个网站,该网站将以数据格式(.png,.jpeg和.gif)存储数千个用户上传的图片。
由于将会有如此庞大的图像数量,因此每个文件只需保留几kb的空间就意味着相当多的存储需求。
我的第一个想法是启用文件夹中的文件存储在Windows文件夹压缩(使用Windows / IIS服务器)。 在总共1Gb的数据上,节省的总空间大约是200kb。
这对我来说似乎是一个不好的结果。 我因此去检查如果Windows文件夹压缩可以调整,但根据这个post它不能: NTFS压缩文件夹
然后我的下一个,那就是我可以使用像Seven Zip Sharp这样的库在我保存时单独压缩这些文件。 但是在我做这个之前,我在几张图片上testing了几个不同的压缩程序。
7Mb .gif的结果就是这样
7z, Compress to .z7 = 1kb space saved 7z, Compress to .zip = 2kb space INCREASE windows, native zip = 4kb space saved.
所以这给我留下了两个虽然..我使用的压缩程序不是很好,或者图像已经压缩尽可能(…我很惊讶,压缩的内置窗口更好比7z)。
所以我的问题是,有没有办法减less由上面列出的图像格式组成的图像档案的文件大小?
我使用的压缩程序很烂,或者图像几乎已经被压缩了
最常见的图像格式已被压缩(PNG,JPEG等)。 压缩文件两次几乎不会产生任何积极的结果,很可能只会增加文件的大小。
所以我的问题是,有没有办法减少由上面列出的图像格式组成的图像档案的文件大小?
不,不太可能。 压缩文件最多可能多一点,但是你专门从事图像本身,而不是压缩算法。 罗伯特·利维 ( Robert Levy)的帖子里有一些很好的选择。 我用来剥离元数据的工具是PNGOUT 。
大多数用户可能会上传已经完成压缩的基本级别的文件,这就是为什么你没有看到很多好处。 有些用户可能正在上传未压缩的文件,但在这种情况下,您的尝试会有所作为。
也就是说,图像压缩应该被认为是来自正常文件压缩的独特领域。 正常的文件压缩技术将是“无损”的,确保文件的每一位在文件解压缩时被恢复 – 图像(和其他媒体)可以“有损”的方式被压缩,而不会使文件降级到不可接受的水平。
有专门的工具,这样你可以用来做的东西,如去掉元数据,应用一些模糊,执行采样,降低质量,减少尺寸等。看看这里的答案一个很好的例子: 压缩JPG文件的建议与ImageMagick 。 最高的答案是从264kb到170kb的示例文件。