是否可以使用QGraphicsView从2D BYTE阵列Qt绘制图像



我有一个2D BYTE(无符号字符)数组。buf[50][100],其具有一些数据。我需要使用QGraphicsView将这个缓冲区绘制到Qt中的图像。(x,y)中的字节表示数组的第(x,y)个像素。如何将此数组传递到QGraphicsView以快速绘制?或者有没有其他方法(不使用QGraphicsView)可以在2D阵列中绘制图像请提供帮助。

您可以从预先存在的内存区域创建一个QImage对象,然后使用drawImage调用在普通的QPainter上绘制它。

作为每像素8位的图像,您还需要为图像设置调色板。

调色板只是从字节索引到QRgb颜色值的映射。你可以这样设置:

static void setGrayColorMap(QImage * img)
{
   img->setColorCount(256);
   for (int i = 0; i < 256; ++i) {
      img->setColor(i, qRgb(i,i,i));
   }
}

最新更新