翻转图片水平c ++没有2d数组

时间:2015-04-27 21:03:16

标签: c++ arrays image

我想知道是否有水平翻转图像而不使用2d数组。类似的东西:

     for (int x = 0; x < width/2; x++) {
                for (int y = 0; y < height; y++) {
                   int temp = pixelData[x][y]; 
                   pixelData[x][y]=pixelData[width-x][y] 
                   pixelData[width-x][y]=temp;
                }
        }

1 个答案:

答案 0 :(得分:0)

您可以使用单个指针进入图像。

您需要知道一条光栅线(扫描线)的末端与下一条光栅线之间的距离(增加指针的量)。因此,在增加超过光栅线的末尾后,添加到指针的距离,这样就会到达下一个光栅线的最左侧列。

对于具有智能GPU的现代系统,通过将图像复制到2d阵列,转换它然后将其放回,可以获得更高的效率。更智能的GPU可能具有镜像功能以及bit-blitting。