获取图片背景(Base64)为空

#关于Qt 的一段代码,解析图片

void yf_ir_image_ex_get_raw_base64(YHANDLE &handle, char *str) {
    unsigned short width, height;
    yf_ir_image_ex1_get_image_resolution(handle, width, height);
    unsigned int size;
    QImage img = QImage(width, height, QImage::Format_RGB32);
    yf_ir_image_ex1_get_bits(handle, img.bits(), size);
    QByteArray ba;
    QBuffer buffer(&ba);
    buffer.open(QIODevice::WriteOnly);
    img.save(&buffer, "JPG");
    strcpy(str, ba.toBase64());
    buffer.close();
}

这段代码 最终形成的.so 动态库被调用,在相同的Centos(一个是本地局域网的Centos64 另一个是阿里云服务的Centos) 中 一个可以拿到str 的字符串值,一个拿不到(空字符串),是系统环境的问题,还是这段代码本身的问题 ?如果是系统的问题 可能会是什么引起的?

解决了 ,系统需要配置一个
export QT_PLUGIN_PATH=/usr/lib64/linux-x86-64/plugins 把 jpeg.so 的动态库配置进去即可

有可能安装qt时少装了imageformats插件,你可以输出img.save()的结果看看是true还是false,或者试试保存成png行不行,因为png不需要插件