Нужно сделать сохранение качества изображения при сжатии qpixmap выше

Нужно сделать качество картинки выше. Сверху картинка в whatsapp +- того же размера, снизу в моём приложении.

введите сюда описание изображения

#include <QtWidgets>
#include <QPainter>
class ChatWidgetInList : public QWidget {
Q_OBJECT
private:
    QPixmap _icon;
    QString _chatName;
    QString _lastMsg;
    QString _lastMsgDate;
    QLabel lbl;
    bool _isPinned;
public:
    ChatWidgetInList(QString chatName, QString lastMsg, QString lastMsgDate, bool isPinned, QWidget* wgt = 0) : QWidget(wgt) {
        setFixedHeight(64);
        setMinimumWidth(400);
        setMaximumWidth(512);
        _chatName = chatName;
        _lastMsg = lastMsg;
        _lastMsgDate = lastMsgDate;
        _isPinned = isPinned;
        _icon = QPixmap("E:\\QtProjects\\build-testingWidgets-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\\debug\\" + _chatName + ".png");
        lbl.setPixmap(_icon);
        lbl.show();
        QFile file("E:\\QtProjects\\build-testingWidgets-Desktop_Qt_5_12_12_MinGW_64_bit-Debug\\debug\\" + _chatName + ".png");
        qDebug() << file.exists();
    }
    virtual void paintEvent(QPaintEvent*)override{
        QPainter painter;
        painter.begin(this);
        painter.setRenderHint(QPainter::Antialiasing, true);
        QLinearGradient gradient1(64, 0, width(), height());
        gradient1.setColorAt(1, QColor(38,39,40));
        gradient1.setColorAt(0, QColor(64,66,68));
        painter.setPen(Qt::white);
        painter.setBrush(QBrush(QColor(38,39,40)));
        painter.drawRect(0, 0, 63, 64);
        painter.setBrush(gradient1);
        painter.drawRect(64, 0, width() - 64, 64);
        painter.drawLine(64, 0, 64, 64);
        painter.drawRoundRect(68, 4, width() - 72, 56, 5, 25);
        qreal scaleX = 56/float(_icon.size().width());
        qreal scaleY = 56/float(_icon.size().height());
        painter.scale(scaleX, scaleY);
        painter.setBrush(QBrush(Qt::black, _icon));
        painter.drawEllipse(4 / scaleX, 4 / scaleY, 56 / scaleX, 56 / scaleY);
        painter.scale(1 / scaleX, 1 / scaleY);
        QFont font;
        font.setBold(true);
        font.setPixelSize(14);
        painter.setFont(font);
        painter.drawText(72, 20, _chatName);
        font.setBold(false);
        font.setPixelSize(13);
        painter.setFont(font);
        painter.drawText(72, 52, _lastMsg);
        painter.end();
    }
};

Ответы (1 шт):

Автор решения: Koto SCrafter

Проблема решалась с помощью эффекта размытия.

→ Ссылка