这里所说的图像处理是指通过修改图像的像素数据,从而改变图像的呈现效果。在实际开发中,比较常用的是为图像添加滤镜,如浮雕效果等。
编辑像素数据实际上是对每个像素点中的各个颜色通道值进行修改以达到预期结果。通常像素点包含红色(R)、绿色(G)、蓝色(B)以及A(不透明度,即Alpha值)4个通道,A值一般不用修改,许多情况下都是对RGB三原色进行一些算法运行。图像处理的各种算法可以通过查阅资料,或者网络搜索直接获取。
在编辑像素数据之前,读者应简单了解一下几种像素格式。BitmapPixelFormat枚举(位于Windows.Graphics.Imaging命名空间)定义了3中基本的像素格式:
- Bgra8: 每个通道值占8位,即一个字节,排列顺序为B-G-R-A。第一个字节为B通道的值,第二个字节为G通道的值,第三个字节为R通道值,最后一个字节为A通道值。也就是说,描述一个像素点的颜色需要4个字节,共32位。
- Rgba8: 和上面的一样,也是每个通道值占用一个字节,只是每个通道值排列的顺序变为R-G-B-A。
- Rgba16: 像素排列依然是R-G-B-A,但每个通道的值为16位,占用两个字节,因此,需要8个字节来描述一个像素点,共64位。
假设使用Bgra8格式来表示该图像的像素数据,则各字节的排列顺序从左到右,从上到下。举例图像宽3个像素,高2个像素,即三列两行,先从第一行第一个像素开始排列,接着排列第一行第二个像素,直到第一行的像素点排列完为止;然后转到第二行,也是从左到右排列各个像素点。也就是说,图像数据的排列方式为:从左到右,从上而下,先横后纵