作者:一去、二三里
个人微信号:iwaleon
微信公众号:高效程序员
在做多媒体开发时,很多时候需要在视频中添加一些“额外的装饰”,像图片、文字、或者一些其他图形形状,这使得显示效果更加丰富。
可能你觉得很简单:用一个 label 盖上去,或者直接将 image 画上去不就好了?no、no、no,按照传统的渲染方式,一般很难达到要求,需要一些小小的技巧才行!
举个栗子,要在视频上显示一行文字和一个矩形,应该怎么做?这是一个简单的演示效果:
下面,我们来一步步地深入,看看到底会遇到什么问题,又需要用到哪些技巧!
传统的控件叠加显示
要进行 2D 图形绘制,可以重写 paintEvent() 事件,然后画任何想要的东西,例如:点、线、面等。
例如,绘制一个线宽为 5,背景透明的矩形,可以这样做:
void SubWidget::paintEvent(QPaintEvent *event)
{
Q_UNUSED(event);