在运行时压缩图像大小

时间:2015-08-29 10:53:48

标签: android ios memory image-size

我的应用程序存在一些内存问题。它可以从用户个人图库中选择图像并将其存储在要在屏幕上呈现的文件中。问题是图像尺寸的限制非常小。我发现它几乎导致我的设备上的每个图像都要大到处理。因此,该方法本身变得无用,因为它无法处理中等大小的图像。到目前为止,我只在ios设备上遇到这种情况。

有解决方案吗?我可以以任何方式压缩/最小化图像的尺寸吗?将所有图像切割成相同的分辨率? (就像Instagram的系统一样)。

1 个答案:

答案 0 :(得分:0)

如果要以字节为单位缩小图像大小,至少可以使用3个区域:

  1. 缩小图像尺寸(像素分辨率)。这几乎总是如此 导致质量下降,但如果您的用户正在观看小型 屏幕设备,你不要调整太多,损失不会 重大。您还可以使用插值来最小化视觉效果 调整大小时的退化。
  2. 减少位深度(颜色分辨率)。如果图像是全彩色(32 或者每像素24位),你有时可以减少它 较低的颜色数,例如8位。这将是 导致质量下降,但你可以使用抖动来减少它。
  3. 使用更好的压缩。大多数图像都是 这些天已经压缩了,但在某些情况下你可以重新压缩 使图像变小的图像。一个例子是JPEG 支持不同的品质因素。也有不同 JPEG中的子类型(颜色采样频率)。所以,如果你保存一个 图像为4:1:1而不是4:4:4,它将包含较少的颜色内容 并且字节大小变小,但差别通常不大 人眼可见。此post包含有关更改的详细信息 iOS上的JPEG品质因素。