QImageReader(Writer)支持格式变少的解决方法
首发于我的个人博客:xie-kang.com
博客内有更多文章,欢迎大家访问
原文地址
获取程序支持的图片格式:
#include "mainwindow.h"
#include <QApplication>
#include <QImageReader>
#include <QImageWriter>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
/// 打印支持图片格式
qWarning()<<QImageReader::supportedImageFormats();
MainWindow w;
w.show();
return a.exec();
}
QImageReader::supportedImageFormats()或者QImageWriter::supportedImageFormats()返回的支持格式列表比正常少了许多,在本机的运行环境中返回值只有:
("bmp", "pbm", "pgm", "png", "ppm", "xbm", "xpm")
举个例子,这里面没有jpg,这会影响QImage\QPixmap\QImageReader\QImageWriter对jpg的保存解析,调用如QImage::save(path, "JPG")等函数会一直返回false(想获取具体出错信息,可以使用QImageReader(Writer)进行读写,使用QImageReader(Writer)::errorString()可以获取错误信息)。
原因是Qt plugin没有正确加载到相关动态库。
可以按照下列步骤检查:
- 检查当前软件运行目录中是否有imageformats目录,以及该目录是否有对应的库;
- 到对应版本的Qt sdk的安装目录拷贝整个imageformats目录到软件的运行目录,不需要debug版本的库可以删除带d后缀的dll;
- 做完上述两个步骤QImageReader::supportedImageFormats()还是返回少数格式的话,可以尝试在main函数开头添加 QApplication::addLibraryPath("./"); 让Qt 优先在当前目录查找动态库。
int main(int argc, char *argv[])
{
QApplication::addLibraryPath("./");
...
}
QImageReader(Writer)支持格式变少的解决方法的更多相关文章
- 不支持关键字“metadata”问题的解决方法
不支持关键字“metadata”问题的解决方法 原来的语句: metadata=res://*/Models.CallCenterEntities2.0.csdl|res://*/Models.Cal ...
- firefox chrome ie9,10,11 不支持selectSingleNode和selectNodes的解决方法
firefox并不支持selectSingleNode和selectNodes的解决方法 function test(){ var perid = document.thisForm.PerID.va ...
- mysql导出csv文件excel打开后数字用科学计数法显示且低位变0的解决方法
Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0. Excel打开csv文件时,只要字段值都是数字,它 ...
- 用视频编辑软件打不开jpg格式的图片的解决方法
有时候我们把PSD.JPG等图片导入到素材库中会发现EDIUS视频编辑软件根本就不支持,显示黑屏状态.可是当我们把图片导入EDIUS NX支持下的premierepro里却能够正常显示.这是什么原因呢 ...
- 关于“类不能支持Automation操作”错误的解决方法
一段程序IE上老是提示“类不支持Automation操作”的错误,IE6.7.8都一样,但是Firefox可以,后来网上找到如下解决方法: 重新注册下以下文件,问题便解决了:msscript.ocxd ...
- PIL PNG格式通道问题的解决方法
近来研究图片的剪切拼接,用到PIL,在打开PNG格式保存为JPEG格式的图片发现报错: import os from PIL import Image im = Image.open(r'E:\wor ...
- error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 错误的解决方法
一些函数定义中,在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型:但是vs2008/vs2010不支持默认整型,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用排除44 ...
- VS2013在Windows7 64位上变慢的解决方法
重装了windows7系统,又重装了vs2013,发现在打开vs2013.编译工程及调试的时候,vs2013都会变的比较慢,参考网上资料,这里列出几种可能的解决方法: 1. 打开工具--&g ...
- iOS录音后播放声音变小的解决方法
目前需求是录音之后再播放出来.经常会出现播放声音变很小的情况. 解决方法: if (recorder.recording){ [recorder stop]; } [[AVAudioSession s ...
- 说说 JSON 格式的弊端与解决方法
JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统.但也有一些场合不适合使用 JSON 格式. 1 JSON 格式弊端 有这样的一个需求:希望把客户端的日志上传到服务器存储起来.原先 ...
随机推荐
- VUE学习-编译到浏览器
vue文件时怎样编译运行到浏览器的 http://www.manongjc.com/article/21832.html 通过vue-loader,解析.vue文件,在webpack解析,拆解vue组 ...
- Java方法之方法的重载
方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数. 方法的重载的规则: 1.方法名称必须相同. 2.参数列表必须不同(个数不同.或类型不同.参数排列顺序不同等). 3.方法的返回类型 ...
- leetCode 您正在爬楼梯。它需要n步才能到达顶部。每次您可以爬1或2步。您可以通过几种不同的方式登顶?
找抄的,不明白!!! public static int climbStairs(int n) { return climb_Stairs(0, n); } public static int cli ...
- 打包Assetbundle
using UnityEngine;using System.Collections;using UnityEditor;/// <summary>/// 脚本位置:Editor文件夹下/ ...
- 解决 使用 params 传递参数 必须 加上 name
{path:'/blog',name:'blog',params:{is:true}}
- POJ 1830 开关问题 异或高斯消元
题目链接 将题目转化为矩乘问题 构建一个 \(n \times n\) 的开关信息矩阵,其中第 \(i\) 列第 \(j\) 行的元素为 \(0 / 1\) 代表在改变开关 \(i\) 的情况下开关 ...
- 【BOOK】解析库--pyquery
CSS选择器 1.初始化 html=''' <div> <ul> <li class="item-0">first item</li> ...
- FATAL Exited too quickly (process log may have details)的解决方案
作为一个混混的开发,不会啥容器操作.所以一般都是用supervisor来管理一些运行的进程 用了一段时间还是比较好用的,这个软件也是用的Python开发. 但在使用的过程中,status时会出现 FA ...
- 20200925--矩阵乘法(奥赛一本通P94 多维数组)
计算两个矩阵的乘法.n*m阶的矩阵A乘以m*k阶的矩阵B得到的矩阵C是n*k阶的,且C[i][j]=A[i][0]*B[0][j]+A[i][1]*B[1][j]+...+A[i][m-1]*B[m- ...
- ubuntu20安装open4.4带扩展库
0查看当前版本安装 opencv_version 已经装了3.49 再装个4.4共存 1安装依赖库 sudo add-apt-repository "deb http://security. ...