2014-05-05 81 views
0

我只是開始使用Qt的QTransform。 我想翻譯一個簡單的圖像,但我做不到!在表單中,我有一個名爲「rulo」的標籤,點擊時會觸發下面的代碼。Qt - QImage翻譯使用

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的,帆布和trasladada是一樣的!就好像翻譯完全沒有效果一樣。 (顯然,Qimage的外觀也一樣,因爲它們的「數據」完全相同)。

我看過這裏有一個未答覆的主題,在某種程度上類似於: Qt image move/rotation 有關爲什麼翻譯沒有效果的任何想法?謝謝!

+0

在這樣的情況下,我加入了一些輸出進行調試。 '#include '檢查'canvas'和'trasladada'的height()'和width()'以及它們是否相同,圖像的內容是什麼樣子。 – Zaiborg

+0

什麼是「PNM」?我的意思是「PNG」呢? – vahancho

回答

0

您可以使用下面的示例代碼做同樣的:

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