当前位置:首页 > 内存 > 正文

iOS图片内存计算方式

  • 内存
  • 2024-06-07 14:58:04
  • 397

一、iOS简单判断大小端字节序大端模式(Big-endian)是指高字节存放在内存的低地址,数据的低字节存放在内存的高地址(一般采用Big-endian模式。网络)
Little-endian模式是指数据的高字节存放在内存的高地址;数据的低字节存储在内存的低地址
eg。
inta=1;
它是0x00000001;32位合一;有4个字节,内存地址起始地址为0x400001,
大内存地址是连续的。字节序模式
第一位是0x00(地址是0x400001)
第二位是0x00(地址是0x400002)
第三位是0x00(地址是0x400003)
第四位是0x01(地址是0x400004)
高地址存储低字节。
在最小模式下则相反。
在C语言中,关键字union保留足够的空间来容纳多个数据成员中的“一个”,而不是为每个数据成员指定空间。所有数据成员都有相同的起始地址。示例如下:
unionStateMachine
{
character;
intnumber;
char*str;
doubleexp;
};
联合体仅配置足够宽的空间来容纳最大长度的数据成员;在上面的例子中,最大长度是该类型的两倍;因此,StateMachine的空间大小就是double数据类型的大小。。
二、图片内存大小计算

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

现在假设有一张600*800的图片,文件大小为100KB

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

即600*800*4byte=1875KB=1.83M

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

自然是数字越多,显示效果越好

Android中,图片存储目录和移动设备的密度手机屏幕影响最终图像尺寸。例如:

假设我们的图像放置在.xhdpi目录下,那么我们文章中的图片占用内存大小如下:

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

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

因此,在计算图片占用的内存大小时,必须考虑目录图像所在的位置以及设备的密度。这两个因素实际上影响图像的高度和宽度,Android图像会被拉伸和压缩。