图像编程:图片大小关系
图片大小与 格式,尺寸,颜色多少,还和颜色分布有关。
画面越丰富,色彩越多,占空间就大,画面越单调,色彩越小,占空间就少。
常见的图片格式是 jpg ,gif,png8,png24,png32
jpg
是全彩色,固定位深是24
位。而gif、png则可以选择位深。
位深的不同决定了颜色的范围,很明显 png8的颜色范围 2^8 < png32的2^(24+8)
(这里alpha也算成颜色)。
内存的大小
假设图片尺寸是100*100,那么:
- jpg体积 = 1001003 = 30000 30000/1024=30k(约等于)
- png24 = 1001003 = 30000 30000/1024=30k(约等于)
存储的大小
实际上,我们在本地存储的大小跟内存中大小差距很大的。因为有各种压缩算法。
一般情况下,全彩色情况,jpg的大小 < png的大小。
图片理论上的存储大小就是图片的像素点数乘以每个像素点的所占存储空间,,,不过实际图片用不了这么大存储空间,,因为各种格式的图片还涉及一个关键技术压缩,不同的压缩技术也就导致压缩后图片的存储大小不同。举个不太恰当的例子,用坐标表示每个像素位置,假如像素点(1,2)的颜色值是(12,13,14),像素点(1,3)的颜色值也是(12,13,14),存储的时候就只需要存储一组颜色值,另一个点的颜色值就“同上”,这样就节省了存储空间,压缩就是类似于这样的处理。肉眼观察你所截的图,也能很明显感觉到,画面越丰富,色彩越多,占空间就大,画面越单调,色彩越小,占空间就少。
参考
JPG?GIF?PNG?前端如何选择图片格式?
https://www.jianshu.com/p/ab96bf20f90e
经典面试题1:图片占多少内存
https://www.jianshu.com/p/1af904e9a6e4
以下两张JPG图片大小差异是什么造成的?
https://www.zhihu.com/question/26586374/answer/33714836
两张图片就颜色不一样,dpi,尺寸都一样为什么体积相差这么大
https://www.zhihu.com/question/23450044
图片的大小和颜色的多少有关吗?
https://www.zhihu.com/question/21308417
图片的大小与哪些因素有关?