gpt4 book ai didi

c++ - 在 C++ 中将像素阵列旋转 90 度

转载 作者:搜寻专家 更新时间:2023-10-31 00:14:50 25 4
gpt4 key购买 nike

我编写了下一个函数来将包含 RGB 图像的 unsigned char 像素数组旋转 90 度。我面临的问题是旋转后的输出完全是乱码。

void rotate90(unsigned char *buffer, const unsigned int width, const unsigned int height)
{
const unsigned int sizeBuffer = width * height * 3;
unsigned char *tempBuffer = new unsigned char[sizeBuffer];

for (int y = 0, destinationColumn = height - 1; y < height; ++y, --destinationColumn)
{
int offset = y * width;

for (int x = 0; x < width; x++)
{
tempBuffer[(x * height) + destinationColumn] = buffer[offset + x];
}
}

// Copy rotated pixels

memcpy(buffer, tempBuffer, sizeBuffer);
delete[] tempBuffer;
}

最佳答案

将最内层循环中的行替换为:

for (int i = 0; i < 3; i++)
tempBuffer[(x * height + destinationColumn) * 3 + i] = buffer[(offset + x) * 3 + i];

关于c++ - 在 C++ 中将像素阵列旋转 90 度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com