У меня есть изображение, которое я пытаюсь отобразить в QImage.
Это фрагмент кода, который заполняет строки * cols image:
rgbMapped[row][col * 3] = red;
rgbMapped[row][col * 3 + 1] = green;
rgbMapped[row][col * 3 + 2] = blue;
Как вы можете видеть, мой буфер данных имеет высоту строк и ширину столбцов * 3
rgbMapped - массив без знака **. Итак, в моем коде QT у меня есть следующее:
QImage *qi = new QImage(getWidth(), getHeight(), QImage::Format_RGB888);
for (int h = 0; h< getHeight(); h++){
memcpy(qi->scanLine(h), rgbMapped[h], getWidth()*3);
}
QPixmap p(QPixmap::fromImage(*qi,Qt::ColorOnly));
if(scene.items().contains(item)){
scene.removeItem(item);
}
item = new ImagePixmapItem(p);
scene.addItem(item);
ui->graphicsView->setScene(&scene);
ui->graphicsView->show();
ImagePixMapItem - это QGraphicsPixmapItem, который я создал, чтобы позволить мне перехватывать некоторые события мыши, но я не буду ничего делать с любой из функций рисования или чем-либо еще.
Когда я запускаю этот код, мое возвращение возвращается как изображение, похожее на мое изображение, за исключением трех копий, одна с зеленым оттенком, одна с желтоватым оттенком и одна с заметным фиолетовым оттенком.
Кажется, может быть, это было бы правильное изображение, если бы эти три элемента данных были наложены друг на друга?