Search code examples
c++qtimage-resizingqimageqpixmap

Qt resize image with best quality


Can anyone help me resize an image in qt without making the image pixelated. Here's my code. the result is not as good as the original quality..thanks...

QImage img(name);
QPixmap pixmap;
pixmap = pixmap.fromImage(img.scaled(width,height,Qt::IgnoreAspectRatio,Qt::FastTransformation));
QFile file(folder+"/"+name);
file.open(QIODevice::WriteOnly);
pixmap.save(&file, "jpeg",100);
file.close();

Solution

  • You have to pass Qt::SmoothTransformation transformation mode to the scaled function like:

    QImage img(name);
    QPixmap pixmap;
    pixmap = pixmap.fromImage(img.scaled(width,height,Qt::IgnoreAspectRatio,Qt::SmoothTransformation));
    QFile file(folder+"/"+name);
    file.open(QIODevice::WriteOnly);
    pixmap.save(&file, "jpeg",100);
    file.close();