#关于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不需要插件