Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как повернуть растровое изображение

Автор вопроса: SamОтветов: 1

Я получаю растровое изображение 800 на 600 на 3 и передаю его в качестве параметра glDrawPixels(). Прежде чем передать это glDrawPixels, я хочу повернуть растровое изображение на 90 градусов. это возможно?

если бы это было не растровое изображение, а изображение типа png, я бы сделал следующее:

QMatrix rm;

rm.rotate(90);

pixmap = pixmap.transformed(rm);

pixmap.scaled(801, 701);

texture = bindTexture(pixmap);
  • Вы не можете указать QPixmap в качестве параметра glDrawPixels. Какой у вас фактический код? peppe 29.11.2013
  • QMatrix устарел, вместо него используйте QTransform. Pavel Strakhov 29.11.2013
  • Да, я это знаю, представьте, что у меня есть массив BGR, прежде чем передать его в glDrawPixels, как я могу повернуть его на 90 градусов? Sam 29.11.2013

qtqt5openglqt4

Ответы

Ответ 1 · рейтинг 1 · cmannett85

Как ответил liuyi.luo, обычный способ сделать это - использовать QImage и передать необработанные данные в требуемом формате перед преобразованием.

К сожалению, Qt не поддерживает порядок каналов BGR. Вам придется найти стороннюю библиотеку или свернуть свой собственный алгоритм, что должно быть довольно тривиально, если вы поворачиваетесь на 90 градусов. Вот достойная реализация вращения на месте.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы