码迷,mamicode.com
首页 > 其他好文 > 详细

QT 实现图片旋转的两种方法

时间:2018-05-15 00:22:43      阅读:1035      评论:0      收藏:0      [点我收藏+]

标签:实现   ++   pix   不能   示例   函数   Painter   方案   tpi   

第一种方案

使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下:

QMatrix matrix;
matrix.rotate(45);

QLabel *Label= new QLabel();
Label->setPixmap(QPixmap(“:/images.png”).transformed(matrix, Qt::SmoothTransformation));

该段程序实现的效果是使图片顺时针旋转 45 度。

第二种方案

使用 QPainter 这位“画家”,示例程序如下:

void Widget::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    QPixmap disc(":/disc.png");

    /* 碟机转动 */
    if(imageRotate++ == 360)
        imageRotate = 0;
    /* 设定旋转中心点 */
    painter.translate(130,150);
    /* 旋转的角度 */
    painter.rotate(imageRotate);
    /* 恢复中心点 */
    painter.translate(-130,-150);
    /* 画图操作 */
    painter.drawPixmap(40,60,180,180, disc);
}

参考自:www.cnblogs.com/findumars/p/5574332.html

QT 实现图片旋转的两种方法

标签:实现   ++   pix   不能   示例   函数   Painter   方案   tpi   

原文地址:https://www.cnblogs.com/GyForever1004/p/9038505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!