图像压缩和CPU使用率



Android和一个具有Compress方法的Bitmap类(请参阅此处(。

Compress有一个quality parameter。根据文档,当压缩为JPEG时:

压缩为JPEG格式。质量为0意味着压缩最小尺寸。100表示压缩以获得最大视觉质量。

我的问题是:使用更高的值(如100(会比使用更低的值(例如50(使用更多的CPU(即需要更长的时间(吗?

我希望答案是;是的,因为做更多的压缩需要更长的时间;。。。但我真的不知道。

在Jpeg中,更高的质量意味着更少的压缩,因此CPU使用更少。

更高的质量并不意味着它会让照片变得更好,这是一种误解。在Jpeg中,更高的质量意味着不要压缩太多,并保持尽可能接近原始照片的质量压缩会降低当前质量。

接近100意味着更少的压缩以保持质量,因此它使用更少的CPU时间,因为它需要更少的压缩。接近0意味着用更多的压缩来交换质量,因此它需要更多的CPU时间来压缩。

  • 更多压缩(指向0(=质量更低,文件大小更小,CPU使用率更高
  • 更少的压缩(方向为100(=更高的质量,更大的文件大小,更少的CPU使用

您需要考虑的是,在Android中,Jpeg压缩是在C/C++中本地实现的,因此速度非常快。因此,考虑到应该在后台线程中压缩以获得最佳性能,CPU时间并不是一个需要考虑的重要因素。

此外,在大多数情况下,你应该避免使用100%的质量,在80%到95%之间的任何值都是最佳的。

100%的质量意味着根本没有压缩(因此是最好的质量(,但因此可能会产生巨大的文件。

最新更新