QT图片旋转和图片翻转

常见变换简介QT图片旋转和图片翻转_第1张图片

QT图片旋转

1.使用QPixmap的leftmatrix类,默认以图片中心为旋转点, 旋转指定角度

QMatrix leftmatrix;
 leftmatrix.rotate(180);
 
QLabel *pLabel= new QLabel();
pLabel->setPixmap(QPixmap(:/images/img.png”).transformed(leftmatrix,Qt::SmoothTransformation));

2.使用QPainter类

void Dialog::paintEvent(QPaintEvent *)
{
QPainter painter(this);
QPixmap pix;
pix.load("images/img.png");
painter.translate(50,50); //让图片的中心作为旋转的中心
    painter.rotate(90); //顺时针旋转90度
    painter.translate(-50,-50); //使原点复原
    painter.drawPixmap(0,0,100,100,pix);
}

QT图片翻转

水平翻转
void ImageViewer::horFilp()
{
    image = image.mirrored(true, false);
    imageLabel->setPixmap(QPixmap::fromImage(image));
}
垂直翻转
void ImageViewer::verFilp()
{
    image = image.mirrored(false, true);
    imageLabel->setPixmap(QPixmap::fromImage(image));
}
顺时针旋转
void ImageViewer::clockwise()
{
    QMatrix matrix;
    matrix.rotate(90.0);
    image = image.transformed(matrix,Qt::FastTransformation);
    imageLabel->setPixmap(QPixmap::fromImage(image));
}
逆时针旋转
void ImageViewer::anticlockwise()
{
    QMatrix matrix;
    matrix.rotate(-90.0);
    image = image.transformed(matrix,Qt::FastTransformation);
    imageLabel->setPixmap(QPixmap::fromImage(image));
}

你可能感兴趣的:(QT,qt,开发语言)