![为什么图像大小和显示图像所需的内存不同?](https://linux22.com/image/1474509/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9B%BE%E5%83%8F%E5%A4%A7%E5%B0%8F%E5%92%8C%E6%98%BE%E7%A4%BA%E5%9B%BE%E5%83%8F%E6%89%80%E9%9C%80%E7%9A%84%E5%86%85%E5%AD%98%E4%B8%8D%E5%90%8C%EF%BC%9F.png)
我从一个堆栈溢出帖子显示图像所需的内存和图像大小等于
4 * image dimensions
我有一些 800x800 的图片,我看到它的大小大约有一百 KB,我认为这已经很小了。但根据上面的公式,显示它需要超过 2MB 的空间!
SO 帖子说,由于位图使用 ARGB 颜色,每个像素需要 4 个字节的存储空间。所以公式是4* 图像尺寸。但我发现存储该图像只需要 100KB 的空间!
计算机是不是用了不同的方法来存储图像?1 个像素还是需要 4B 来存储吗?这是怎么回事?
答案1
答案2
您的图片已压缩(例如使用jpeg
或)。如果您以未压缩格式(未压缩)png
存储图片,则磁盘上也会有该大小。tiff
zip
答案3
存储图像所需的内存可能小于显示图像所需的内存。例如,如果图像是 80x80 的绿色矩形,您可以将其存储为“80 x 80 的绿色矩形”的等价物。但要显示它,您需要 1600 个绿点,每个绿点都会占用一些空间。