2
我在Qt中旋轉圖像時遇到了一些問題。每次我用QPainter旋轉圖像時,它變得越來越扭曲。這是最初的圖像:旋轉圖像導致Qt失真
一些迭代它成爲後:
這是我的代碼:
void Ship::Move(int x, int y)
{
QPixmap rotatePixmap(shipPixels.size());
rotatePixmap.fill(Qt::transparent);
QTransform transform;
transform.translate(
rotatePixmap.size().width()/2,
rotatePixmap.size().height()/2
);
transform.rotate(degree);
transform.translate(
- rotatePixmap.size().width()/2,
- rotatePixmap.size().height()/2
);
QPainter p(&rotatePixmap);
p.setRenderHints(
QPainter::Antialiasing | QPainter::SmoothPixmapTransform,
true
);
p.setTransform(transform);
p.drawPixmap(0, 0, shipPixels);
p.end();
shipPixels = rotatePixmap;
this->setPixmap(shipPixels);
this->move(QPoint(x, y));
degree = 0;
}
對我來說,Qt的保持圖像質量。行爲是完全陌生的。有理由嗎?
您需要每次計算新的新的旋轉位圖。你正在積累四捨五入的錯誤。 – asawyer
是的,如果你離開船舶像素之間沒有觸摸幀,而是使用它作爲你的錨點,你應該很好去。 – Thadeux
你看到的效果是不可避免的,因爲旋轉90度以外的任何量都是有損操作。損失加起來。它與Qt無關。 –