开发概述
分辨率和像素的关系
DPI(Dot Per Inch) 表示打印分辨率,指每英寸长度上的点数。DPI 又可细分为水平分辨率和垂直分辨率,例如一张 “1英寸1英寸” (1英寸=2.54cm)的图片,如果它的水平分辨率是100 dpi,垂直分辨率是50 dpi,那么就是说,它水平每英寸分成100小段,垂直每英寸分成50小段,就像米尺上的一格格那样。那么这张图总共有10050=5000个格子,这张图片共有5000像素。由于它的水平分辨率和垂直分辨率不相等,所以每个像素是一个微小的长方形,如下图左上角的小长方形:
所以像素实际上是一个面积的概念,而因为一般电脑/数码相机等生产出来的图片都是水平分辨率和垂直分辨率相等,每个像素是个微小的正方形,所以就讲成 “DPI 表示每英寸长度上的像素数目”,其实就是"每英寸长度上的点数"了。
位深度
每个像素由 n个二进制数存储颜色信息
这边以24bit位深度为示例
因为是最常见的颜色甚至是图片位深度
每八位二进制数0000 0000—1111 1111刚好对应十六进制的00—FF
因此一个六位的十六进制刚好可以来表达一个颜色
如绿宝石色(#40E0D0)
(0,0,0)对应黑色
要实现透明色必须使用32Bit色彩
屏幕显示原理
LCD底层像素RGB色块有自己的控制门
控制自己的色度大小
但显示一块颜色要点亮整个背光层
Oled每个像素可以独立发光(无背光层)
不再需要背光层一直发光——寿命短
图片格式
位图:JPG PNG GIF
矢量图 SVG
位图均是压缩后的图片,比理论大小(像素*位深度字节数)小
无损压缩
有损压缩 其区别就在于能否还原回原始图片
压缩——去除更改一些视觉不敏感的颜色
Bmp(不压缩)
会比原始大小还多出54字节
在文件头位存储Bmp的数据
并且存储反着来(B,G,R)倒着读
音视频开发库(API)
为什么选择FFmpeg
跨平台!
足够底层!