Qt:基于QQuickFramebufferObject显示QImage到QML中

GItHub地址

简介

本仓库实现了一个在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"
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值