Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 压缩图像,有什么意义吗?_C#_Windows_Image_.net 4.5 - Fatal编程技术网

C# 压缩图像,有什么意义吗?

C# 压缩图像,有什么意义吗?,c#,windows,image,.net-4.5,C#,Windows,Image,.net 4.5,我正在一个网站上工作,该网站将以.png、.jpeg和.gif格式承载数千张用户上传的图像 由于将有如此大量的图像,因此每个文件仅节省几kb的空间最终将意味着对总存储需求的巨大影响 我的第一个想法是在存储文件的文件夹上启用windows文件夹压缩(使用windows/IIS服务器)。在总共1Gb的数据上,保存的总空间约为200kb 在我看来,这似乎是一个糟糕的结果。因此,我去检查windows文件夹压缩是否可以调整,但根据这篇文章,它不能: 我的下一个想法是,我可以使用库,例如在保存文件时单独压

我正在一个网站上工作,该网站将以.png、.jpeg和.gif格式承载数千张用户上传的图像

由于将有如此大量的图像,因此每个文件仅节省几kb的空间最终将意味着对总存储需求的巨大影响

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

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

我的下一个想法是,我可以使用库,例如在保存文件时单独压缩文件。但在我做这件事之前,我在一些图像上测试了一些不同的压缩程序

在7Mb.gif上的结果是

7z, Compress to .z7 = 1kb space saved  
7z, Compress to .zip = 2kb space INCREASE  
windows, native zip = 4kb space saved.
这让我有两个想法。。我使用的压缩程序不是很好,或者图像已经尽可能地压缩了(…我很惊讶windows内置压缩比7z更好)

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

我正在使用的压缩程序,或者说图像已经尽可能地压缩了

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

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


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

大多数用户可能会上传已经进行了基本压缩的文件,这就是为什么你看不到很多好处的原因。有些用户可能正在上传未压缩的文件,但在这种情况下,您的尝试会有所不同

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


有一些专门的工具,您可以使用它们来做一些事情,比如去除元数据、应用轻微的模糊、执行采样、降低质量、减少维度等。请看下面的答案,以获得一个好的示例:。最上面的答案将示例文件的大小从264kb增加到170kb。

他只需要使用其中一个文件,这样文件就会变小。:)@我有一个压缩算法,可以将任何文件压缩到一个位。。。目前我唯一的问题是解压算法:-)基本上只能压缩额外的:路径和图像头。Rest(数据)已被压缩。使用更先进的压缩技术可以压缩更多,但不要期望任何合理的东西。如果您有
bmp
文件,那么是的,压缩文件夹会做得很好。但是如果你不关心原始文件的内容,那么将bmp转换成jpg/png可能会给你带来比普通的
zip
更多的好处。如果你已经有了jpg/png,那么你什么也做不了。这是一个很好的观点+1.我确实想过调整图像的大小,但这并不是一个真正的解决方案。其他的选择也不错。