我在 Qt 中旋转图像时遇到了一些问题。每次我用QPainter旋转我的图像时,它都会变得越来越扭曲。这是初始图像:
经过一些迭代,它变成:
这是我的代码:
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 保留了图像质量。这种行为完全奇怪。有原因吗?