图片内存大小计算

图片内存大小计算,第1张

图片内存大小 图片文件占用空间大小 是没有必然关系,但是一般来说图片文件大小,图片内存大小就越大。占用空间是在磁盘上占用的空间,内存大小是加载到内存中占用的内存大小。

现在假如有一个图片是600*800的,文件大小100KB。

图片内存大小的计算公式是 : 图片高度 * 图片宽度 * 一个像素占用的字节数

也就是 600 * 800 * 4 byte = 1875KB = 1.83M

而一个像素占用的字节数与图片的编码格式(或者叫bitmap在内存中的存储形式)有关

自然是位数越多显示的效果越好

在Android中,图片的存放目录和手机的屏幕密度影响图片最终的大小,举个例子:

假设我们的图片放到xhdpi目录下,那么我们本文中的图片占用的内存大小如下:

屏幕密度为2的设备:800 * 600 * 4byte = 1.83M

屏幕密度为3的设备:800 * 1.5 * 600 * 1.5 * 4byte = 1.83 * 2.25M = 4.12M

所以,计算图片占用内存大小的时候,要考虑图片所在的目录跟设备密度,这两个因素其实影响的是图片的高宽,android会对图片进行拉升跟压缩。

可以直接使用公式进行计算——图像文件大小 = 图像分辨率X颜色深度/8。

这里的图像分辨率应该是640 X 480.

颜色深度应该是8,因为lb256=8,也就是说2^8=256.

所以图像的大小应该是 640 X 480 X 8 = 2457600 bit ,换算成Byte就是 640 X 480 X 8 / 8 = 307200 B , 再换算成KB,因为1 KB= 1024 B,所以应该是307200 / 1024 = 300KB。

所以图像的大小应该是300KB。

但是问题问的是图像文件的大小,这个要涉及到文件的格式,因为不同文件的格式的图像编码方式不一样,所以会造成不同的文件大小不一样。因为题目没有给出具体文件格式,所以这里就无法计算。

但是图像大小按照计算确实应该是300KB。当然,这里的图像是考虑的灰度图像,256色的灰度图像。

扩展资料:

这里的大小涉及到bit和Byte两个单位,区别如下:

1、容量大小不同

bit是表示信息的最小单位,是二进制数的一位包含的信息或2个选项中特别指定1个的需要信息量。

Byte是数据存储的基础单位,1个Byte由8个bits组成,1 Byte又称为一个字节,用一个字节储存,可区别256个数字。

2、存储数据类型不同

bit是电脑记忆体中最小的单位,在二进位电脑系统中,每一bit 可以代表0 或 1 的数位讯号。

Byte可代表一个字元(A~Z)、数字(0~9)、或符号(,.?!%&+-*/),是记忆体储存资料的基本单位,至于每个中文字则须要两Bytes。

参考资料:

百度百科-数字图像


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11634639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存