Qt音视频开发23-视频绘制QPainter方式(占用CPU)

一、前言

采集到的图片,用painter绘制是最基础的方式,初学者可能第一次尝试显示图片用的qlabel的setpixmap,用下来会发现卡成屎,第二次尝试用样式表设置背景图,依然卡成屎,最终选用painter的方式,直接drawImage函数绘制解析好的图片,可以通过定义一个信号receiveImage,关联该函数绘制即可,通过调用update方法主动触发paintevent事件,在里面按照需要绘制图片,如果是大量频繁的触发update,Qt内部会合并一些绘制,这样可以大大节约CPU资源。无论是setpixmap还是样式表或者是调色板来设置图片,中间经历过很多的运算,绝大部分都是无关的,而且最终都是调用painter来触发绘制到上面,所以通过painter的方式在这几种选项的情况下是最优的。

绘制图片基本上有三种策略,0-自动调整(超过显示区域尺寸则等比例缩放,不超过则原尺寸) 1-等比缩放(永远等比例缩放,小图会拉伸变模糊) 2-拉伸填充(永远拉伸填充,把这个显示区域填满),为此用户可以自行设定图片拉伸策略,在绘制的时候还要考虑到边框大小的问题,最终绘制的区域要减去边框的大小。

二、效果图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/feiyangqingyun/article/details/129472355
今日推荐