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 格式弊端 有这样的一个需求:希望把客户端的日志上传到服务器存储起来.原先 ...
随机推荐
- c++内存分配函数
c语言中: 动态分配内存: malloc()函数; 释放内存: free()函数; c++中: 上述函数仍然可以使用; 动态分配内存: new关键字; 释放内存: delete关键字; int *p ...
- crontab执行不生效
背景:不知道什么原因脚本手动执行:正常:crontab执行不生效: 1.将命令所属路径加入到 /etc/crontab中, 2.在shell脚本中加入 source /etc/profile
- px、em、rem的区别css单位换算
在对页面进行自适应时,查阅相关资料了解到,通常有两种方式将px转换为em或者rem,下面就上述三者之间的联系进行讲解: em与px转换 一般浏览器默认1em=16px,通过设置font-size大小来 ...
- 在项目中配置proxy 解决调试过程中的跨域问题
- 【JVM】学习JVM垃圾回收理论
参考链接:https://www.cnblogs.com/aspirant/p/8662690.html 一,垃圾回收算法 JVM内存结构:程序计数器.虚拟机栈.本地方法栈.堆区.方法区 1,引用计数 ...
- (jmeter笔记)模拟用户各种场景压测
插件:standard set 1.jp@gc - Ultimate Thread Group(波浪式压测,最终线程组) Start Threads Count :设置启用并发数 Initial De ...
- 我眼中的Serverless
https://cloud.tencent.com/document/product/583 摆脱服务器.存储等底层设备,只上传代码,由云服务器提供服务的触发,维护,调用.
- 策略模式demo
/** StrategyContext. */ public class StrategyContext { private Strategy strategy; // 传入的是Strategy的实现 ...
- Spring学习记事本
原因:原因:Application的启动类不能放在默认的java目录,必须放在建有包的目录下.
- Mac截网页长屏的方法-谷歌浏览器
打开chrome,左上角帮助,输入[开发者工具],回车,右边显示出一些html代码, 然后shift+command+p: 输入full,选择第一个capture full size screensh ...