【一口吃胖】图片与格式:计算机通用图像知识与文件格式(BMP、JPG、PNG、G

---
计算机通用图像知识.md
> 公众号: 深海笔记Shinkai
BMP-BitMap位图
BMP是微软在1990年为他的操作系统Windows3.0研发的图片格式
最早支持他的程序是画图程序, 长这么样子
题外话, 所以BMP格式可以说是 win的亲儿子~之后的Windows出产的图像软件都得无条件的支持这种格式.
BMP和BitMap位图这两个概念分隔开理解会好一些
- 因为是存在BitMap位图这个概念的.
- 这个操作就像是, 给一个车的品牌取名SUV, 但是同时有个车型叫SUV; 只会徒增混乱(但是具体谁先;谁给谁添加混乱不一定~)
BMP缺点
- BMP无法压缩
- 例子: 将JPG格式的图片改格式为BMP, 图片大小会增加20倍
- 换句话说, 如果你手机中的图片文件从JPG存储改成BMP存储, 一个128G手机就变成了6G手机.
BMP格式的不同色深Color depth
24色, 单色, 256色, 16色是什么?
就是类似小时候水彩笔,蜡笔的颜色多少. 专业术语叫做色深/位深
这块可以对应到买手机时提供的 XX色, 这个实际上就是非常细致的色彩变化了. 数值越大越好(有前提)
- 256色 -> 8位色
- 16色 -> 4位色
- 单色 -> 1位色
- 24位色 -> 1600万色 ->
主流
被称为"真彩色 Ture Color" - 10bit-> 30位色/ 10亿色 -> 深彩色"Deepcolor" // RGB
24位色虽然是主流, 但是如今10bit显示器已经非常常见了.未来可能还有12bit, 36位色
图片像素Pixel
显示器构成的像素点, 实际上是物理像素或者叫显示器像素.我们接下来要提到的是图片像素, 那么这两者之间有什么关联么?
实际上在一些可以放大的页面上, 比如谷歌浏览器的Ctrl+加号放大.
这个时候实际上你看到的图片像素就是由多个屏幕像素/物理像素所构成的了.
为什么有的软件放大看不到像素?
那是因为一些软件为了让你在放大的时候看不到像素~ 使用了插值算法, 呈现出一种渐变的过渡效果.
Resolution 分辨率
目前的屏幕分为以下几种
- 老式电视的4:3 方屏
- 标准屏 16:9
- 超宽屏(带鱼屏)21:9
因此在, 新屏幕看老电影, 左右会有黑边.在老屏幕看新电影, 上下会有黑边.
上面3个数值, 宽:高, 都乘以3 同高情况, 是不是越新越宽?
看视频/电影的时候会有分辨率. 1080P 720P 480P 360P; 2K 4K是什么?
P结尾的是高, 可以算出来 宽的数值.
K结尾的是宽, 2560, 3840.对应的高是 1440 2160.
他们还有一个别称
HD高清在1080还没有出现前, 是属于720的~ 所以现在一般的聪明厂商都开始避开这个称呼
JPEG格式
- 常见后缀: .jpeg / .jpg
- 老外叫 J-peg
- 国内叫JPG图片
JPEG占据了一半以上的市场,为什么?
JPEG使用了上面这堆算法, 将BMP压缩了20倍.
JPG致命问题
- 有损压缩 lossy compression
- 不支持半透明
接下来看例子
将Vue的logo放大8倍后我们可以看到, 这个位置有一些条纹. 叫做"noise噪音"或者"artifacts 失真"
这就是JPEG高压缩率的代价.
有损压缩 lossy compression 对应的无损压缩 lossless compression
压缩软件的压缩全部是无损压缩
别难受, MP3, MP4 实际上也是有损压缩.
jpg在照片领域的强势没办法替代~ 因为看不到噪音,不需要半透明.
在保存JPG图像的时候, 有一个额外的对话框来设置图片质量
这个值在0-100.
尽量选择85-95之间, 但是上了90之后, 图片大小就会类似BMP格式了~
无脑90就好~
Exif
读音类似: exit
主要记录: 相机型号,相机设置等 查看详情可以看到.
GPS信息也会被记录, 这里有精确到米的位置信息.
PNG- portable network graphics
最初的设想是这样的
PNG - PNG's Not Gif
这种缩写就不得不提到, recursive Acronym递归缩写
PHP也是这样的, 最初叫做 Personal Home page
- PNG属于永远保真
- JPG属于从未保真~