来自unsigned char缓冲区的QImage(jpg格式)

Ton*_*ion 4 c++ qt jpeg image

我有unsigned char*填充JPG图像的类型的缓冲区.我想使用此缓冲区将图像绘制到QLabel中的应用程序屏幕.

我做到了这一点,但图像不正确.

谁能告诉我最好的方法是什么?

QPixmap pix = QPixmap::fromImage(
     QImage(buff, 460, 345, QImage::Format_RGB888)); //Not sure what format to use for a jpg image?

one_img->setPixmap(pix);  //one_img is of type QLabel.
Run Code Online (Sandbox Code Playgroud)

ale*_*sdm 6

QImage::loadQImage构造函数期望图像缓冲区处于未压缩格式.

如果您不打算修改图像,请使用QPixmap及其loadFromData()功能:

QPixmap pix;
pix.loadFromData(buff, sizeOfBuff, "JPG");
Run Code Online (Sandbox Code Playgroud)

您还可以使用QImage::fromData/ QImage::loadFromDataQImageReader+ 加载Jpeg缓冲区QBuffer.