使用Qt-QImage进行翻译

使用Qt-QImage进行翻译,image,qt,qt4,Image,Qt,Qt4,我只是请求使用Qt的Qt转换。 我试图翻译一个简单的图像,但我做不到!在表单中,我有一个名为“rulo”的标签和一个按钮,单击该按钮会触发以下代码 void MainWindow::on_pushButton_clicked() { QImage canvas = QImage("/home/andresdido/Descargas/ruleta.png","PNM"); // QImage canvas; QTransform translating; QIm

我只是请求使用Qt的Qt转换。 我试图翻译一个简单的图像,但我做不到!在表单中,我有一个名为“rulo”的标签和一个按钮,单击该按钮会触发以下代码

void MainWindow::on_pushButton_clicked()
{
    QImage canvas = QImage("/home/andresdido/Descargas/ruleta.png","PNM");

    // QImage canvas;
    QTransform translating;
    QImage trasladada;

    qreal ancho = (qreal) canvas.width()/2;
    qreal alto = (qreal) canvas.height()/2;

    translating.translate(ancho,alto);

    trasladada=canvas.transformed(translating);
    ui->rulo->setPixmap(QPixmap::fromImage(trasladada));

    return;

}
QImage、canvas和trasladada都是一样的!就好像翻译没有任何效果一样。显然,两个Qimage看起来也一样,因为它们的“数据”完全相同

我看到这里有一个悬而未决的话题,在某种程度上类似于:
你知道为什么翻译没有效果吗?谢谢

您可以使用以下示例代码执行相同操作:

QImage canvas = QImage("source.png");
QImage trasladada(canvas.width(), canvas.height(), QImage::Format_ARGB32);
trasladada.fill(Qt::white);

QPainter painter(&trasladada);
qreal ancho = canvas.width() / 2.0;
qreal alto = canvas.height() / 2.0;    
painter.drawImage(QPointF(ancho, alto), canvas);   

ui->rulo->setPixmap(QPixmap::fromImage(trasladada));

在这种情况下,我添加了一些用于调试的输出。包括并检查画布和trasladada的高度和宽度,以及它们是否相同,图像的内容是什么样子。什么是PNM?我指的是PNG?可能是它没有效果的原因:在内部,变换矩阵被调整以补偿不必要的转换,即变换返回包含原始图像所有变换点的最小图像。