PNG使用比GIF更多的内存

时间:2013-04-18 17:48:24

标签: android image png gif formats

我创建了一个使用了大量GIF的Android应用。我得到了一些反馈,说明Galaxy S III上没有显示图像,我使用这篇文章意识到我的GIF是问题所在:Images not loading on Galaxy S3

但我有一个担忧。我从帖子中借了一些代码,告诉我我用了多少内存。当我使用GIF时,我得到这样的值:

I/memory  (  547): App Memory: Pss=12.15 MB
I/memory  (  547): Private=10.52 MB
I/memory  (  547): Shared=8.47 MB

当我切换到PNG时,我得到的值是这样的:

I/memory  (  547): App Memory: Pss=21.33 MB
I/memory  (  547): Private=20.18 MB
I/memory  (  547): Shared=14.02 MB

为什么使用PNG时内存使用率会高得多?

我有110张图片,大小从大约75x75到1048x907(1KB到148KB)不等。 GIF的总大小为1.39MB,PNG的总大小= 1.48MB。至于压缩,我使用Paint.NET来保存它们并使用'自动检测'来进行比特深度。

编辑:我回去看了,大部分图片都保存为8位,256色。

GIF占用较少的磁盘空间这一事实我认为是令人困惑的部分。看起来Android应该更容易处理PNG。

我正在使用表面视图并调用canvas.drawBitmap

1 个答案:

答案 0 :(得分:1)

你的影像有多大?两者似乎有所不同......如果图像很小,比如10px x 10px,那么GIF通常会变小。对于较大的图像,PNG(几乎?)总是较小的文件大小。

一般情况下,我总是将PNG用于重要的资产,例如游戏中的玩家,按钮等。以及用于背景等的JPEG。

你是如何压缩你的PNG的?如果有的话?