我通过3位图图像接收800乘600,并将其作为参数提供给glDrawPixels()。在给glDrawPixels这个之前,我想将位图旋转90度。那可能吗?
如果它不是位图而是像png这样的图像,我会执行以下操作:
QMatrix rm;
rm.rotate(90);
pixmap = pixmap.transformed(rm);
pixmap.scaled(801, 701);
texture = bindTexture(pixmap);
答案 0 :(得分:9)
QImage srcImg(":/icon.png");
QPoint center = srcImg.rect().center();
QMatrix matrix;
matrix.translate(center.x(), center.y());
matrix.rotate(90);
QImage dstImg = srcImge.transformed(matrix);
QPixmap dstPix = QPixmap::fromImage(dstImg);
答案 1 :(得分:1)
正如liuyi.luo所回答的,正常的做法是使用QImage
并在转换之前传入所需格式的原始数据。
不幸的是,Qt不支持BGR频道订单。您将不得不找到第三方库,或者滚动您自己的算法 - 如果您使用90度旋转,这应该是非常简单的。 Here是一个适当的就地轮换实施。