Qt имеет класс QImageWriter , который поддерживает формат JPEG и позволяет указывать уровень сжатия.Вы можете использовать его для сохранения данных QImage в QByteArray .Ниже приведен пример:
QImage image("/home/image_from.png");
QByteArray array;
QBuffer buffer(&array);
// write image to memory buffer
QImageWriter writer;
writer.setDevice(&buffer);
writer.setFormat("JPEG");
writer.setCompression(9);
writer.write(image);
или вы можете использовать QPixmap метод сохранения;он также позволяет указать буфер памяти в качестве устройства вывода:
QImage image("/home/image_from.png");
QPixmap pixmap = QPixmap::fromImage(image);
QByteArray array;
QBuffer buffer(&array);
pixmap.save(&buffer, "JPEG", 9);
надеюсь, это поможет, с уважением