0

我正在开发一个图像处理应用程序,它从 IDS uEye 驱动程序获取图像数据作为原始char*缓冲区。我需要向用户展示这张图片。(据我了解Qt,QLabel该类应该用于此目的)。我还应该说明图像处理算法,我认为直接修改char*缓冲区最快。

我已经看到了很多使用这种方法的代码示例:

label.setPixmap(QPixmap::fromImage(image));

其中imageQImagechar*缓冲区构造的。

但是,我在 uEye 演示应用程序源中找到了这段代码:

void PaintLabel::paintEvent(QPaintEvent *ev)
{
  //...
  QPainter painter(this);
  painter.drawImage(rectangle, image);
  painter.end();
}

wherePaintLabel是 的子类,QLabel并且显示应该在哪里绘制。rectangleQRectFimage

我做了一些时间测量,结果发现第二种方法快了大约 1.8 倍(大约 9 毫秒对 16 毫秒)。

所以,我的问题是:有没有其他方法可以char*更快地显示位图 - 尽可能快?请注意,这只是一个相同的缓冲区,只是它的内容在变化;因此无需为每一帧从头开始重建所有内容 - 只需刷新即可。

4

0 回答 0