QT drawPixmap和drawImage处理图片模糊问题

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

处理后效果如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/615454.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习—数据集(二)

1可用数据集 公司内部 eg:百度 数据接口 花钱 数据集 学习阶段可用的数据集: sklearn:数据量小,方便学习kaggle:80万科学数据,真实数据,数据量大UCI:收录了360个数据集,覆盖科学、生活、经济等…

基于springboot+vue的汽车租赁管理系统

背景介绍: 网络发展的越来越迅速,它深刻的影响着每一个人生活的各个方面。每一种新型事务的兴起都是为了使人们的生活更加方便。汽车租赁管理系统是一种低成本、更加高效的电子商务方式,它已慢慢的成为一种全新的管理模式。人们不再满足于在互联网上浏览…

不会搭建ERP帮助中心的看过来,这篇文教会你

企业资源规划(Enterprise Resource Planning, ERP)系统是支撑公司核心业务的大脑。但你知道吗,没有一个好用、易懂的帮助中心,就像给这个大脑裹上了层层蚕丝,难以发挥它的最大潜能。那么,怎样才能搭建一个优…

深度学习相关知识

目录 一.环境安装 1.cuda/cudnn安装: 2.Pytorch,torchvision安装 3. TensorRT安装C版本: 4.onnxRuntime安装: 二.基础知识 1.Onnx、onnxTime、wts和TensorRT 2. 模型部署 3. 深度学习简介 4. Loss函数 5. 激活函数 一.环…

杰发科技AC7840——CAN通信简介(4)_过滤器设置

0. 简介 注意:过滤器最高三位用不到,因此最高位随意设置不影响过滤器。 1. 代码分析 注意设置过滤器数量 解释的有点看不懂 详细解释...也看不大懂 Mask的第0位是0,其他位都是1(就是F?),那就指定了接收值就是这个数,…

【cmake安装】研发环境搭建之cmake安装

背景 因为项目需求,需要家里的Win10 PC安装Ubuntu 20.04虚拟机并搭建编译环境,需要安装cmake编译环境 直接命令安装即可 sudo apt install cmake安装成功后: 3.16版本暂时也够用了

SVM向量支持机

1.通俗理解 svm:support vector machine目标:利用超平面将两类数据分割开来,这个超平面就是我们要设计的对象 如何设计?我们设计之后会有间隔,间隔越大分类效果就越好;距离决策边界最近的点我们成为支持向…

【嵌入式基础知识学习】AD/DA—数模/模数转换

AD/DA—数模/模数转换概念 数字电路只能处理二进制数字信号,而声音、温度、速度和光线等都是模拟量,利用相应的传感器(如声音用话筒)可以将它们转换成模拟信号,然后由A/D转换器将它们转换成二进制数字信号&#xff0c…

【Java】第十五届蓝桥杯JavaB组第一道填空题

#【Java】第十五届蓝桥杯JavaB组第一道填空题 大家好 我是寸铁👊 总结了一篇【Java】第十五届蓝桥杯JavaB组第一道填空题文章 喜欢的小伙伴可以点点关注 💝 Java B组 第一道填空题题解如下:

Unity之Unity面试题(三)

内容将会持续更新,有错误的地方欢迎指正,谢谢! Unity之Unity面试题(三) TechX 坚持将创新的科技带给世界! 拥有更好的学习体验 —— 不断努力,不断进步,不断探索 TechX —— 心探索、心进取…

鸿蒙TypeScript学习第14天:【联合类型】

1、TypeScript 联合类型 联合类型(Union Types)可以通过管道(|)将变量设置多种类型,赋值时可以根据设置的类型来赋值。 注意:只能赋值指定的类型,如果赋值其它类型就会报错。 创建联合类型的语法格式如下&#xff1…

vue canvas绘制信令图,动态显示标题、宽度、高度

需求: 1、 根据后端返回的数据,动态绘制出信令图 2、根据 dataStatus 返回值: 0 和 1, 判断 文字内容的颜色,0:#000,1:red 3.、根据 lineType 返回值: 0 和 1, 判断 箭…