1. 使用transform函数
当使用QPixmap时,可以使用transformed
函数来创建一个旋转后的图像。transformed
函数返回一个QPixmap
对象,该对象是原始QPixmap
对象的副本,但应用了指定的变换。用这个方法最简单,推荐!
示例:
#include <QApplication>
#include <QPixmap>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
// 加载图像
QPixmap originalPixmap("path_to_your_image.jpg");
// 旋转图像
QPixmap rotatedPixmap = originalPixmap.transformed(QTransform().rotate(45));
// 显示旋转后的图像
QLabel label;
label.setPixmap(rotatedPixmap);
label.show();
return a.exec();
}
2. 使用QPainter
在Qt中,可以使用QPixmap和QPainter来旋转图像。
示例:
#include <QApplication>
#include <QPixmap>
#include <QPainter>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
// 加载图像
QPixmap originalPixmap("path_to_your_image.jpg");
// 旋转图像
QTransform transform;
transform.rotate(45); // 旋转45度
QPixmap rotatedPixmap(originalPixmap.size());
rotatedPixmap.fill(Qt::transparent); // 用透明色填充旋转后的图像
QPainter painter(&rotatedPixmap);
painter.setRenderHint(QPainter::Antialiasing);
painter.setRenderHint(QPainter::SmoothPixmapTransform);
painter.setTransform(transform);
painter.drawPixmap(0, 0, originalPixmap);
painter.end();
// 显示旋转后的图像
QLabel label;
label.setPixmap(rotatedPixmap);
label.show();
return a.exec();
}