我有一个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));
}
}