莘县网站开发,wordpress 制作widget,福清网站建设专家,宣传网页设计作业成品drawPixmap和drawImage显示图片时#xff0c;如果图片存在缩放时#xff0c;会出现模糊现象#xff0c;例如将一个100x100 的图片显示到30x30的区域#xff0c;这个时候就会出现模糊。如下#xff1a; 实际图片#xff1a; 这个问题就是大图显示成小图造成的像素失真。 当…drawPixmap和drawImage显示图片时如果图片存在缩放时会出现模糊现象例如将一个100x100 的图片显示到30x30的区域这个时候就会出现模糊。如下 实际图片 这个问题就是大图显示成小图造成的像素失真。 当我们在1080的屏幕上显示清楚的图片放到2k屏幕上也可能会出现图片模糊原因也是大图显示成小图或者显示成更大的图造成的缩放像素失真。 解决方法按照要显示的大小我们代码提前给它缩放处理防止它自动缩放。
QPainter p(this);p.setPen(QColor(208,208,208));
p.setBrush(Qt::white);
p.setRenderHint(QPainter::Antialiasing);
QPainterPath path;
path.addEllipse(this-rect());
p.setClipPath(path);p.drawEllipse(this-rect());
qreal pixelRatio p.device()-devicePixelRatioF(); // 获取不同显示器的分辨率比例防止不同分辨率下图片失真
m_logopix m_logopix.scaled(QSize(width() * pixelRatio, height() *pixelRatio), Qt::IgnoreAspectRatio, Qt::SmoothTransformation);//缩放图片到当前分辨率下的显示大小SmoothTransformation平滑处理。
p.drawPixmap(this-rect(),m_logopix);处理后效果如下