简介
本仓库实现了一个在QML框架中,显示QImage数据的QML控件,取名为JQImageItem
本控件针对的场合是需要显示并且频繁修改QImage的场景,例如视频显示。
提供了2个实现版本,一个是基于QQuickFramebufferObject(FBO)的JQImageItem,一个是基于QQuickPaintedItem的JQImageItem2。
在绝大多数场合下,FBO的实现性能要明显好于其他版本,因此如果你需要使用本仓库的控件,请使用这个版本。
代码基于纯Qt+OpenGL实现,开发时测试了2个Qt版本,分别是5.15.2和6.5.2,理论上其他Qt版本也能正常使用。
如何使用
在QML中,直接实例化控件,然后需要把控件的指针传回到C++,然后在C++端进行数据更新。实例化代码如下:
JQImageItem {
id: imageItem
anchors.fill: parent
}
如果要调整图片显示的大小,位置等属性,那么直接调整这个Item即可。
在C++端拿到指针后,调用setImage接口,可以把QImage数据设置到控件内,然后控件会显示这个QImage图片数据,代码如下:
imageItem->setImage( QImage( "C:/your/image/xxx.png"