我有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)
QImage::load或QImage构造函数期望图像缓冲区处于未压缩格式.
如果您不打算修改图像,请使用QPixmap及其loadFromData()功能:
QPixmap pix;
pix.loadFromData(buff, sizeOfBuff, "JPG");
Run Code Online (Sandbox Code Playgroud)
您还可以使用QImage::fromData/ QImage::loadFromData或QImageReader+ 加载Jpeg缓冲区QBuffer.