没有OpenGL,在X11上在QT上显示图像的最快方法是什么?

msh*_*msh 8 linux x11 qt qt4 xlib

我需要在QT小部件中显示原始图像.我在帧缓冲区上运行X11,因此OpenGL不可用.

图像和帧缓冲都是相同的格式 - RGB565,但如果需要,我可以将其更改为任何其他格式.我不需要混合或缩放.我只需按原样显示像素.

我正在使用QPainter :: drawImage,但它将QImage转换为QPixmap,这种转换似乎非常慢.它也得到了Xrender的支持,我认为在Xrender中支持混合需要不必要的开销,我并不需要

有没有更好的方法?如果它在QT中不可用,我可以使用Xlib或任何其他库或协议.我可以修改驱动程序,X服务器或其他任何东西.

And*_*rov 3

您尝试使用XPutImage吗?(或者XShmPutImage如果您要从客户端多次传输图像并且具有可用的 MIT-SHM 扩展)另请参阅video4linux 网络摄像头示例viewer.c,但它们在发送之前将 565 转换为 16 或 24 位深度。对于您的设置,应该可以发送图像而无需转换