如何从显示缓冲区中绘制像素?

时间:2012-03-12 08:52:20

标签: qt qt4 qt4.7 qt4.6 qt4.8

是否有任何示例Qt代码显示来自unsigned char显示缓冲区的图像?缓冲区上的每个字节对应于灰度像素颜色。显示缓冲区的内容在指定的时间间隔内在运行时更改。我需要尽可能快地更改显示缓冲区内容,以便图像看起来像是在移动。我的问题是如何从缓冲区中快速绘制像素?我不需要保存图像,只想显示它。请帮忙

1 个答案:

答案 0 :(得分:2)

QImage使用unsigned char缓冲区提供constructor初始化。要显示它,您可以使用QGraphicsViewQGraphicsScene。每次缓冲区的数据发生变化时,您都可以调用类似于以下内容的插槽:

void updateImage()
{
     // I assume an 1024x768 image
     QImage img(buffer, 1024, 768, QImage::Format_Indexed8);
     scene->clear();
     scene->addPixmap(QPixmap::fromImage(img));
     graphicsView->update(); 
}

你也可以使用QPixmap的{​​{3}}来直接加载unsigned char数组中的pixmap,并避免QImage步。