Можно ли нарисовать изображение с помощью QGraphicsView из 2D-массива BYTE Qt? - PullRequest
1 голос
/ 01 марта 2012

У меня есть массив 2D BYTE (без знака). buf [50] [100], который имеет некоторые данные. Мне нужно нарисовать этот буфер для изображения в Qt, используя QGraphicsView. Байт в (x, y) представляет (x, y) -й пиксель массива. Как передать этот массив в QGraphicsView, чтобы рисовать очень быстро? Или есть какой-либо другой метод (без использования QGraphicsView) для рисования изображения в 2D-массиве Пожалуйста, помогите.

1 Ответ

0 голосов
/ 01 марта 2012

Вы можете создать 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));
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...