简介:本文将介绍在Qt框架中实现图片旋转的几种常见方法,包括使用QTransform、QPainter、QGraphicsView和QOpenGLWidget等。
在Qt中,有多种方式可以实现图片的旋转。以下是一些常见的方法:
#include <QTransform>#include <QPainter>void rotateImage(QPainter &painter, QPixmap &pixmap, double angle) {QTransform transform;transform.rotate(angle);painter.setTransform(transform);painter.drawPixmap(0, 0, pixmap);}
#include <QPainter>#include <QImage>void rotateImage(QPainter &painter, QPixmap &pixmap, double angle) {QImage image = pixmap.toImage();image = image.transformed(image.transformMode(), angle);pixmap = QPixmap::fromImage(image);painter.drawPixmap(0, 0, pixmap);}
#include <QGraphicsView>#include <QGraphicsScene>#include <QGraphicsPixmapItem>void rotateImage(QGraphicsView &view, QPixmap &pixmap, double angle) {QGraphicsScene *scene = new QGraphicsScene();scene->addPixmap(pixmap);view.setScene(scene);view.rotate(angle); // Rotate the view, not the image itself.}
#include <QOpenGLWidget>#include <QOpenGLFunctions>#include <QOpenGLBuffer>#include <QOpenGLShaderProgram>#include <QMatrix4x4>#include <QVector3D>#include <QVector2D>#include <QImage>#include <QPainter>#include <QTimer>