2014-05-05 2 views
0

Я просто начинаю использовать QTransform Qt. Я пытаюсь перевести простой образ, но я не могу этого сделать! В форме у меня есть метка с именем «rulo» и кнопка, запускающая следующий код при нажатии.Qt - QImage translate using

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's, canvas и trasladada - это то же самое! Как будто перевод не имел никакого эффекта. (Очевидно, оба Qimage также выглядят одинаково, поскольку их «данные» совершенно равны).

Я видел есть тема без ответа здесь, который, таким образом, аналогично: Qt image move/rotation Любые идеи о том, почему перевод не имеет никакого эффекта? Благодаря!

+0

в подобных случаях я добавить вывод для отладки. '#include ' и проверить для 'height()' и 'width()' 'canvas' и' trasladada', а также, если они идентичны, каково содержание изображения. – 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)); 
Смежные вопросы