代码编织梦想

一、BMP位图

1.

一个实际例子,选择一个24位深度的225×225位图,

由于24位位图是真彩色,没有颜色表这一样,所以

其文件大小为152.154字节,则

152.154=14+40+(225×3+1)×225

注:因为1个像素用三个字节来表示,所以乘以3;因为位图存储时,Windows规定一个扫描行所占的字节数必须是
4的倍数(即以long为单位),不足的以0填充,225×3+1刚好是4的倍数;14和40是位图文件头和位图信息头的字节大小;

2.
当利用绘图程序将文件保存为256色,即8位深度的位图后,文件大小变为52.378字节,即

52.378 = 14 + 40 + 256 × 4 + (225 + 3)× 225

注:256色位图有颜色表,每个颜色表结构体是4字节,所以颜色表这一项占256*4 个字节;

225+3 刚好凑成4的倍数

3.

从上面的两个例子可知,对于bmp位图,由于存储时无压缩,我们可以从像素总量(比如上面的255*255)以及位图存储格式中,算出一幅位图占用的字节数;

也即是说,如果几幅位图都是 1280*960,并且都是8位深度,那么它们占用的存储大小都是一样的~

(葫芦岛相机拍摄的图片,大小为:14+40+256*4+1280*960字节,约为1.17MB~)

对于从网上随便下载的一幅图片,可能是jpg、png、bmp等多种格式,我们光知道他们像素总数是1280*860,是无法计算出图片大小的~~因为压缩方式、编码等都不一样

4.

我们通常说,一幅图片的分辨率是1280*960,这个其实并不准确~
图像分辨率指图像中存储的信息量,是每英寸图像内有多少个像素点,即:像素每英寸,单位为PPI(Pixels Per Inch)。一般来说,很少用分辨率这个概念来衡量电子图片。
但是,在生活中,图像分辨率是一个被混用到电子图片的概念,原本含义的目的是“密度”决定“打印质量”,后来被混用,或者说错误的用做衡量图像内的像素点数量。

1920*1200是像素总量,不是密度,密度要除以英寸才是,存储在图像头部信息中,用于打印设置。
5.
用浏览器截图工具截取一幅图片,保存在windows画图工具中,假设截取的宽度为1280,高度为960

当我们用不同的格式进行保存(比如8位位图、24位位图、jpg、png等不同格式),最后在电脑上显示的图片尺寸都为:1280*960,而图片的存储大小都不一样~~
我们用不同方式存储时,图片的像素总数是不变的,都为1280*960,只不过每个像素需要的字节数不一样,所以文件大小也不一样~即便是jpg等压缩格式,像素的个数并没有被压缩,只是针对不同的像素点,可能需要的字节数不一样

6.
两个相同尺寸1920*1200的图像,在相同色彩度(如24位真彩)情况下,无压缩的BMP位图的大小是相同的。
而你看到文件大小的不同,是因为图像压缩算法造成的(无压缩文件会非常大,一般为BMP格式),图像压缩是个比较大的课题,分为无损压缩(PNG等)和有损压缩(JPG等),具体压缩算法非常多,各有优劣。
以最常见的JPG为例,其压缩算法是有损的,压缩后的文件大小有几个重要的决定因素:原图尺寸、有损程度、图像中相邻点色差,图像中存在色彩数量等等。

 


原文:https://blog.csdn.net/foreverhuylee/article/details/22798159 

图像的大小的计算-爱代码爱编程

1.先明白位深和色深的概念       位深:即在某一分辨率下,每一个像素点可以有多少种色彩来描述,单位为“bit”(位)。典型的色深是8-bit、16-bit、24-bit和32-bit。深度数值越高,可以获得更多的色彩。       图像深度是指存储每个像素所用的位数,也用于量度图像的色彩分辨率。图像深度确定彩色图像的每个像素可能有的颜色数,或者确

图片大小计算方法_pomel的博客-爱代码爱编程_图片大小怎么算

一、图像占用空间的大小计算: 大小=分辨率*位深/8 分辨率=宽*高(如:1024*768,640*480) 位深:如24位,16位,8位 /8计算的是字节数。 例如: 一幅图像分辨率:1024*768,24位,则其大小计算如下: 大小=1024*768824/8=2359296byte=2304KB   二、图像物理尺寸的大小计算: 参考一些会员

图像分辨率、像素总数、文件大小搞清楚-爱代码爱编程

问题来之前需要了解的基础: 一张34562048的图像指的是其总像素数为(34562048),其中长边有3456个像素,宽边有2048个像素。我们所说的手机1500万像素等概念就是源于这个乘积得出来的数值。 分辨率指的是每英寸中含有的像素点的个数,即像素密度单位为(dpi:dots per inch,像素点/英寸)或者也有称之为点密度(ppi),视网膜屏就

png的格式及像素存储分析-爱代码爱编程

从图片的数据块存储方式来看png分两种 1.索引色模式存储。png8的索引色透明就采取该种方式。该种方式是将颜色存在png的可选模块调色板中,调色板的色彩存储格式为RGB(各1byte)。而图片的数据块里的像素直接存储调色板里的索引值,根据索引寻找对应的颜色及透明色。透明色的指定由PLTE后的tRNS图像透明数据块指定。布尔透明和alpha透明的区别是a

像素与分辨率-爱代码爱编程

1. 像素 像素是组成图像的最小单位,是指在由一个数字序列表示的图像中的一个最小单位,可以理解为一个点。在相机中,像素是分辨率的单位,指相机所支持的有效最大分辨率。500万像素,即2560×1920(像素总数约定于500万)。 2. 分辨率 分辨率又分为屏幕分辨率与图像分辨率。 2.1 屏幕分辨率 屏幕分辨率:又称显示分辨率,指屏幕纵向和横向上的

图像大小怎么计算?-爱代码爱编程

开头 之前没有怎么注意图像的大小计算,粗略的认为从【图像】到【电子图像】是经过了【采集】-【量化】-【编码】,究竟怎么计算还真没仔细想过 那么量化究竟是怎么一个【量化】法呢? 首先,图片大小的存储基本单位是字节(byte),每个字节是由8个比特(bit)组成。所以,一个字节在十进制中的范围是[0~255],即256个数。 图片大小跟颜色模

一张图片占据的内存大小是如何计算?-爱代码爱编程

最近封装了个高斯模糊组件,正好将图片相关的理论基础也梳理了下,所以,这次就来讲讲,在 Android 中,怎么计算一张图片在内存中占据的大小,如果要优化,可以从哪些方向着手。 提问 阅读本篇之前,先来想一些问题: Q1:一张 png 格式的图片,图片文件大小为 55.8KB,那么它加载进内存时所占的大小是多少? Q2:为什么有时候,同一个 app,

如何把图片分辨率调低?如何调整照片的分辨率?_压缩图图的博客-爱代码爱编程

图像分辨率一般是指图像单位英寸内所包含的像素点数,一般用DPI表示单位,一张图像的文件大小一般是由图像的分辨率和尺寸共同决定的,分辨率与尺寸越大,图像越清晰,但是同样所需占用的空间就越大。在了解了关于图片分辨率的概念以后,如果平时我们在电脑上使用图片时遇到图片分辨率太高需要调低的情况该怎么办呢?今天小编来给大家分享一个给照片修改分辨率的方法,支持修改jpg

图片像素、大小、分辨率的关系_图片大小与分辨率关系-爱代码爱编程

图片是怎么由什么组成的? 电脑处理出来的图形通常分2种,一种是矢量图,一种是点阵图,就是图象由无数个点组成。每个点就是PS中说的像素,每个像素里都由一个颜色表现,所以点阵图是有一个个有颜色的点(像素)排列而成。我们平时看到的文件格式有PSD、TIF、JPG、GIF等都是点阵图,数码相机拍摄的照片就是点阵图。 像素是什么? 既然图片是由很多点组成,那每

通过图片像素计算图片大小的方法_根据像素计算图片大小-爱代码爱编程

图像大小在相机下通常表现为“像素”,例如1200万像素的相机,一张图片是3000*4000; 而保存成bmp的无压缩格式图片时,存到本地上我们更加习惯的是以“内存”的方式来描述大小。 那么是如何通过图片的像素大小来计算保存