Problem fixed!
The image data has to be written into the buffer returned by the QImage::bits() method.
Here's the solution:
auto sz = img.byteCount(); uchar* a = new uchar[sz]; memcpy(a, img.bits(), sz); m_lastFrame = QImage(imgSize.width(), imgSize.height(), imgFormat); memcpy(m_lastFrame.bits(), a, sz); // We write the image data into the new QImage delete[] a;And with a QDataStream:
QByteArray arr; QDataStream ds(&arr, QIODevice::ReadWrite); ds.writeRawData((const char*)img.bits(), img.byteCount()); ds.device()->seek(0); m_lastFrame = QImage(imgSize.width(), imgSize.height(), imgFormat); ds.readRawData((char*)m_lastFrame.bits(), img.byteCount()); // We read the data directly into the image bufferThank you so much for your help JKSH an koahnig!!