常见变换简介
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));
}