Qt QPixmap旋转图像

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();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值