旋转QByteArray

时间:2014-11-17 14:43:41

标签: c++ arrays qt camera rotation

我想在取景器中旋转相机。我的想法是获得QByteArray并旋转它,因此像素在X和Y方向上显示为镜像。 所以如果我的数组看起来像这样:

5 2 6 8
3 5 2 1
6 7 4 5
3 2 1 7

它应该是这样的:

7 1 2 3
5 4 7 6
1 2 5 3
8 6 2 5

有人可以告诉我怎么做吗?

2 个答案:

答案 0 :(得分:3)

你可以像这样使用std :: reserve

#include <algorithm> 

QByteArray reverse = barr; 
std::reverse(reverse.constBegin(), reverse.constEnd());

或使用此

QByteArray reverse;
std::reverse_copy(barr.constBegin(), barr.constEnd(), reverse.begin());

答案 1 :(得分:0)

您如何访问QByteArray

如果迭代器是可接受的解决方案,您可以执行以下操作:

for(std::reverse_iterator<char*> rBegin(myQByteArray.data() + myQByteArray.size()); rBegin != std::reverse_iterator<char*>(myQByteArray.data()); ++rBegin){
    std::cout << *rBegin << " ";
}

请注意,如果您要使用const char* QByteArray::data()来电,只需在模板中使用std::reverse_iterator初始化const

std::reverse_iterator<const char*> rBegin(myQByteArray.data())