我需要将原始图像缓冲区转换为 jpg 图像缓冲区。
目前,我通过以下方式执行此操作:
QImage tmpImage
= QImage(rawImgBuffer, img_width, img_height, image.format ); //image.format=RGB888
QBuffer bufferJpeg(&ba);
bufferJpeg.open(QIODevice::WriteOnly);
tmpImage.save(&bufferJpeg, "JPG");
QByteArray finalJpgBuffer = bufferJpeg.data();
它工作正常,但 cpu 负载太高(我有很多线程每秒执行此操作很多时间)。阅读 Qt 文档后,我发现了这篇文章:Hardware Acceleration & Embedded Platforms。如果我理解的话,我可以使用 QPainter 类来执行 gpu 操作......是否可以使用这个类进行这种转换(从 raw 到 jpg)?(或另一个使用硬件加速 (gpu) 的类似 Qt 类)!!
我的应用程序需要独立于平台。
非常感谢。