图片尺寸(size)与图片存储大小(byte)的关系

图片是由一个个像素点组成的,我们首先了解一下像素。

一个像素点就是一个方形,它的尺寸和大小不是一定的。它越小,图片单位面积所包含的像素就越多,图片分辨率就越高(分辨率的常见的单位有PPI,表示每英寸像素数)。

假设一个三通道尺寸为84*84的图片,共有84*84个像素,它的shape为(84,84,3),size为84*84*3=21168。尺寸相同的图片,其存储大小是不一定的。

图片存储大小不仅与其包含的像素点个数有关,也与图像的质量有关。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在计算机中,一个颜色通常由红、绿、蓝(RGB)三个分量组成,每个分量的取值范围是 0~255,因为 8 位二进制数可以表示 0~255 的所有整数。因此,一个颜色可以用三个字节(即 24 位)的二进制数来表示,分别代表红、绿、蓝三个分量。 在程序中,一般使用整型或无符号整型类型来表示颜色变量。如果使用无符号整型,通常使用 32 位无符号整型,其中高 8 位表示透明度,接下来的 8 位表示红分量,再接下来的 8 位表示绿分量,最后的 8 位表示蓝分量。如果使用整型类型,通常使用 32 位有符号整型或 32 位无符号整型,其中每个分量的 8 位分别存储在四个字节的不同位置上,需要根据字节序(大端序或小端序)来确定各个分量的存储位置。 例如,在 C/C++ 中,可以使用无符号整型类型 DWORD 来表示颜色变量,其中高 8 位表示透明度,接下来的 8 位表示红分量,再接下来的 8 位表示绿分量,最后的 8 位表示蓝分量。因此,可以使用以下方式来将颜色变量转换为字节(byte)数组: ``` DWORD color = 0xFFAABBCC; // 透明度为 FF,红分量为 AA,绿分量为 BB,蓝分量为 CC BYTE bytes[4]; bytes[0] = (BYTE)((color >> 24) & 0xFF); // 透明度 bytes[1] = (BYTE)((color >> 16) & 0xFF); // 红分量 bytes[2] = (BYTE)((color >> 8) & 0xFF); // 绿分量 bytes[3] = (BYTE)(color & 0xFF); // 蓝分量 ``` 这样,bytes 数组中的四个元素就分别存储了透明度、红分量、绿分量、蓝分量四个分量的值。反之,如果要将字节(byte)数组转换为颜色变量,可以使用以下方式: ``` BYTE bytes[4] = { 0xFF, 0xAA, 0xBB, 0xCC }; // 透明度为 FF,红分量为 AA,绿分量为 BB,蓝分量为 CC DWORD color = 0; color |= ((DWORD)bytes[0] << 24); // 透明度 color |= ((DWORD)bytes[1] << 16); // 红分量 color |= ((DWORD)bytes[2] << 8); // 绿分量 color |= ((DWORD)bytes[3]); // 蓝分量 ``` 这样,color 变量就存储了透明度为 FF,红分量为 AA,绿分量为 BB,蓝分量为 CC 的颜色值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值