作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
在《libVLC 抓取视频帧并渲染(QWidget)》介绍完 QWidget 对视频帧的渲染之后,是时候介绍第二种方式了 - QGraphicsView/QGraphicsScene/QGraphicsItem 图形视图框架。
基本步骤:自定义一个 QGraphicsItem,通过它绘制视频帧,然后将其添加到 QGraphicsScene 中。利用 QGraphicsView 的交互性,还能实现一些额外的功能(例如:鼠标滚轮缩放、平移等),但是对视频的实时处理会有一定的影响。
下面,我们基于 QGraphicsItem 进行视频帧的渲染,并在视频上显示一些水印文本、图片,包括一些交互性的功能按钮等。
自定义 QGraphicsItem
为了便于视频帧的渲染,我们继承于 QGraphicsObject(或者 QGraphicsItem),封装一个自定义的 VideoItem 类。
在这个类中,有一个主要接口 setPixmap(),通过它可以直接进行图片的设置