JPEG图片大小怎么计算
然后我存储为JPEG格式,为什么图片大小是307.7KB呢?上面的740*740像素还有分辨率是72,怎样计算出图片的大小是307.7KB的? 展开
1.57MB是图像的原始大小,740*740*3(RGB图像通常每像素3字节)=1642800字节=1.566696MB,大约等于其BMP格式的大小,而307.7KB是JPEG格式的大小,是压缩过的。
JPG图片的大小,与压缩质量系数有关,与图片的内容有关。640*480的JPG图片,文件大小可能只有几KB,也可能有上百KB。
256色,即每个像素用8位(一个字节)来描述,640*480共307200像素(约30万像素),因此图像大小就是307200字节,即300KB。
BMP文件实际是由位图文件头、位图信息头、彩色板、图像数据阵列四个部分构成,上面的300KB是图像数据阵列部分,加上文件前面的部分(一般为几十个字节),会比300KB略大。
扩展资料:
JPEG也是最常见的一种图像格式,它是由联合照片专家组开发并以命名为“ISO 10918-1”,JPEG仅仅是一种俗称而已。
JPEG文件的扩展名为.jpg或.jpeg,因其压缩技术十分先进,它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像质量。
参考资料来源:百度百科-图片
其实由于jpeg格式是有损压缩格式,因此同样大小的图片,就算参数完全相同的情况下,保存后的大小也是有很大差异的,因此只能估算最大值和最小值,无法在没有实际输入的情况下算出输出大小。
而在估算时,起到主要影响因素的包括以下几点(可能不全,但一般够用了):
图片像素尺寸
色彩数——影响解压后的每像素字节数
品质——分11级,0时图片变化最明显,体积也最小,这个主要影响压缩率;
8级一般是比较推荐的等级,不对比的情况下基本看不出质量损失
有些软件用百分比形式映射,有些软件从1开始因此最大是12
色彩分布——这个对压缩的影响很大,是接近估值最小值还是估值最大值几乎都受他影响,是造成没有准确值只有估值的最大变数
至于基线、差值、是否连续等优化,对最终体积是有影响,但相比于品质的压缩率在图片不是特别小的情况下影响可以忽略
说完这些简单的理论,接着说说怎么估算和误差大小。
首先是用图片像素尺寸和色彩数,我们能算出图片在内存中的体积
Size=Width * Height * 每像素字节数
这里每像素字节数很好理解,不懂可以百度,这里给几个常用的,照片一般是第一个:
RGB(888) - 3字节,RGB(565) - 2字节,256色 - 1字节,16色-1/2字节,黑白-1/8字节之后就是依据品质和图片大小推测压缩率范围
这个比较复杂,只能经验性估值,这里只介绍影像压缩率的几个变量:
a. 图片越小压缩率越小,并逐渐趋向当前质量的最小压缩率,
图片越大压缩率越大,并逐渐趋于当前质量的最大压缩率,图片非常小时有可能比1还小;
b. 品质越低压缩率越高,0级时一般会在200:1到30:1间浮动,大多集中在60:1附近
8级时一般会在40:1到4:1间浮动,大多集中在16:1
11级时一般会在16:1到2:1间浮动,大多集中在7:1附近
c. 色彩分布越趋向于单色、连续颜色、重复色块时压缩比越高,极端时(比如纯白的图),就算图片很大,图片也只会有几百字节到几十K字节。
因此文件大小的范围就是前一步得到的 size * 估算的压缩率范围
JPG图片的大小,与压缩质量系数有关,与图片的内容有关。640*480的JPG图片,文件大小可能只有几KB,也可能有上百KB.
另外,JPG图片一般是24位一千六百万色,256色的只是灰度图片,使用较少。
只知道分辨率和色彩数,是不可能算出JPG文件的大小的。
如果题目中图片格式改为BMP格式,则可以算出文件大小。
BMP图像信息部分的大小可以这样计算:
256色,即每个像素用8位(一个字节)来描述,640*480共307200像素(约30万像素),因此图像大小就是307200字节,即300KB。
BMP文件实际是由位图文件头、位图信息头、彩色板、图像数据阵列四个部分构成,上面的300KB是图像数据阵列部分,加上文件前面的部分(一般为几十个字节),会比300KB略大一点点
2009-6-22 11:34
*********************************
对问题补充的回复:
你们老师给出的答案是错误的。
他给出的是存储这个图像需要的位(bit)数,不是题目中要求的字节(byte)数。所以他给出的数值大了8倍。
2009-6-22 16:34
640×480×4=1228800字节
1228800÷1024÷1024=1.171875兆(M)/
2、根据像素计算大小
原始图像大小可以如此估算:水平像素*垂直像素*1色黑白或3基色*一种颜色深度bit数/8/1024/1024=MB数
比如1024*1024的24位彩色bmp=1024*1024*(3*8)/8/1024/1024=3MB