在爲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