在为QPixmap的Qt的帮助文件::转变,它规定: -
变换变换内部调整,以补偿 不需要翻译;即产生的像素映像是包含原始像素映像的所有变换点的最小像素映像 。使用 trueMatrix()函数检索用于变换像素图的 的实际矩阵。
我假设图像的宽度和高度不相等。因此,正如您所观察到的,每次旋转都会减小尺寸,以确保保持完整的图像。
通过添加边框将原始图像更改为具有相同的宽度和高度,或者在旋转之前或之后缩放图像,但图像质量会受到影响。
或者,如果您始终旋转90度,则可以在外部艺术计划中旋转图像,加载所有4张图像并设置您想要的图像,而不是通过Qt旋转它们。
============== EDITED ======================
在回应的评论有不同的旋转,你需要确保你有一个永远不会旋转的源图像,然后对于每次迭代,从源图像创建一个图像,以防止图像大小和图像质量的降低。
在伪代码,这将是这样的: -
Image srcImage(":/myimage");
void MyWidget::rotateLabel()
{
Image img(srcImage);
img.rotate(rotation);
label->setPixmap(img);
}
为您的帮助需要帮助Merlin,我已经尝试过在旋转后调整图像的大小,但图像的大小仍然减小。请告诉我其他人或其他能够帮助我的人。 – Ashish 2013-06-20 06:10:12
你总是在旋转90度吗? – TheDarkKnight 2013-06-20 07:36:07
没有Merlin,它不总是90度,可能是25,35,37,128,230意味着它不是一个固定值。 – Ashish 2013-06-26 05:28:27