我正在寻找一种方法将数百个PNG文件压缩成一个大文件,并像数据库一样使用它,例如“获取图片编号X”。我需要它快速并使用尽可能少的磁盘空间。到目前为止,我已经尝试过使用blob的SQLite,最终使用的空间增加了27%,然后PNG文件才会在磁盘上使用。它还需要与C#和PHP兼容。
非常感谢
答案 0 :(得分:0)
如果我真的想这样做,我会将所有文件放在Zip包中。
我会去“商店”级别,因为它不会压缩很多,但它会将文件放在一个文件中,内部的“文件结构”我可以用来跟踪哪个意味着什么,还有用于处理PHP和.NET的Zip包的库。
(但实际上,我可能只是把它们作为blob放在数据库中而不用担心27%的磁盘空间,除非我们在这里谈论几个演出)。
答案 1 :(得分:0)
这不是一个真正的答案,但是评论太长了。
首先,我会怀疑你有充分的理由想要这样做,但坦率地说,很难想象这样的场景。 "几百个" PNG文件真的不是很多。即使在最糟糕的情况下,你还在谈论什么,几千兆字节?价值便宜的便士(尽管泰国有洪水)。
其次,使用pngcrush。它是PNG压缩的事实黄金标准。既然你说你的图像是从PDF转换而来的,我认为它们不是最佳的,并且通过pngcrush运行它们可能会消除进一步压缩恶作剧的需要。
第三,确保您的存储量不超过您的需要。你能减小图像的大小(像素高度/宽度,我的意思),还是降低颜色深度?图像质量有多重要?
最后,@ JonHanna做对了 - 将它们全部放在压缩文件中会让你在压缩方面获得最佳效果。如果您不担心性能问题,请继续尝试最高压缩设置,但您可能会发现它并没有太大区别,因为正如他所提到的那样,已压缩的PNG不会压缩更多。
最后+ 1,您可能需要查看DjVu - 这是由AT& T开发的免费标准,专门用于压缩扫描文档(应该很好地转换为转换后的PDF) 。我还没有使用它,但它已经在那里了。