0

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

4

1 回答 1

2

QImage提供了一个使用缓冲区进行初始化的构造函数。unsigned char为了显示它,您可以使用 aQGraphicsView和 a QGraphicsScene。每次缓冲区的数据发生变化时,您都可以调用类似于以下的插槽:

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'sloadFromData来直接从 unsigned char 数组加载像素图并避免该QImage步骤。

于 2012-03-12T09:10:29.423 回答