图片存储

图片数据矩阵

Scanline?

图片数据矩阵的行数。

Stride?

图片数据矩阵的列数。也是图片每行数据的长度。

Padding?

每一行除了图片数据后的填充数据。
可以用于存储图片的其他描述,可以用于图片与图片的对齐,也可以用作图片数据处理的对齐。
总之就是一个除了图片数据以外的区域
比如:
有一个程序每次处理图片,一次处理一行,每次处理行大小Stride为10个字节。
现在有个图片,图片Image Width为8。这个程序在处理这个图片的时候每行处理10字节就无法对齐8字节,可能会导致处理结果异常。
所以在处理之前可以填充一些无意义的数据,每行填充2个字节。这个就是Padding。填充后这个图片Image Width为8,Stride为10。
如果没有Padding的图片,那么Stride = Image Width,如果有Padding的图片,那么Stride = Image Width + Padding。

内存中

如果用数据流来存储处理图片,那么图片数据流的长度size就是ScanLine * Stride。
第一行就是从0开始到Stride,第二行就是从Stride开始到Stride*2,第三行就是...
代码中的话,第一行就是image[0]到image[Stride],第二行就是image[Stride+1]到image[Stride*2],第三行就是image[Stride*2+1]到 image[Stride*3]...

你可能感兴趣的:(图片存储)