-
原始数据第 height - 2 行第 0 列的像素点将会变成目标数据第 1 行第 0 列的像素点
-
原始数据第 height - 2 行第 1 列的像素点将会变成目标数据第 1 行第 1 列的像素点
-
…
-
原始数据第 height - 2 行第 width - 1 列的像素点将会变成目标数据第 1 行第 width - 1 列的像素点
-
…
-
原始数据第 height - 1 行第 0 列的像素点将会变成目标数据第 0 行第 0 列的像素点
-
原始数据第 height - 1 行第 1 列的像素点将会变成目标数据第 0 行第 1 列的像素点
-
…
-
原始数据第 height - 1 行第 width - 1 列的像素点将会变成目标数据第 0 行第 width - 1 列的像素点
由于BGR数据是3个byte作为一个像素点,因此我们在拷贝每个像素时需要每次移动3个byte。
- 水平镜像
void horizontalMirrorBgr24(char *bgr24, char *mirrorBgr24, int width, int height) {
int lineStartIndex = 0;
int lineDataSize = width * 3;
for (int h = 0; h < height; h++) {
for (int w = 0; w < lineDataSize; w += 3) {
mirrorBgr24[lineStartIndex + w] = bgr24[lineStartIndex + lineDataSize - w - 3];
mirrorBgr24[lineStartIndex + w + 1] = bgr24[lin