我接收800乘600乘3的位图图像,并将其作为参数提供给glDrawPixels()。在将其提供给glDrawPixels之前,我想将位图旋转90度。这可能吗?
如果它不是位图,而是像png这样的图像,我会做以下操作:
QMatrix rm;
rm.rotate(90);
pixmap = pixmap.transformed(rm);
pixmap.scaled(801, 701);
texture = bindTexture(pixmap);
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);
正如刘一洛所回答的,通常的方法是使用QImage
并在转换之前传递所需格式的原始数据。
遗憾的是,Qt不支持BGR渠道订单。你必须找到一个第三方库,或者推出你自己的算法——如果你旋转90度,这应该是非常琐碎的。这是一个不错的就地轮换实现。