【发布时间】:2023-03-24 22:20:01
【问题描述】:
我想在取景器中旋转相机。我的想法是获取 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
谁能告诉我该怎么做?
【问题讨论】:
标签: 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
谁能告诉我该怎么做?
【问题讨论】:
标签: c++ arrays qt camera rotation
你可以像这样使用 std::reserve
#include <algorithm>
QByteArray reverse = barr;
std::reverse(reverse.constBegin(), reverse.constEnd());
或者使用这个
QByteArray reverse;
std::reverse_copy(barr.constBegin(), barr.constEnd(), reverse.begin());
【讨论】:
您如何访问您的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() 调用,您只需在模板中使用const 初始化您的std::reverse_iterators:
std::reverse_iterator<const char*> rBegin(myQByteArray.data())
【讨论】:
QByteArray,但你可以在这里看到const char* 的工作:ideone.com/BS0xHR