首发于我的个人博客: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没有正确加载到相关动态库。

可以按照下列步骤检查:

  1. 检查当前软件运行目录中是否有imageformats目录,以及该目录是否有对应的库;
  2. 到对应版本的Qt sdk的安装目录拷贝整个imageformats目录到软件的运行目录,不需要debug版本的库可以删除带d后缀的dll;
  3. 做完上述两个步骤QImageReader::supportedImageFormats()还是返回少数格式的话,可以尝试在main函数开头添加 QApplication::addLibraryPath("./"); 让Qt 优先在当前目录查找动态库。
int main(int argc, char *argv[])
{
QApplication::addLibraryPath("./");
...
}

QImageReader(Writer)支持格式变少的解决方法的更多相关文章

  1. 不支持关键字“metadata”问题的解决方法

    不支持关键字“metadata”问题的解决方法 原来的语句: metadata=res://*/Models.CallCenterEntities2.0.csdl|res://*/Models.Cal ...

  2. firefox chrome ie9,10,11 不支持selectSingleNode和selectNodes的解决方法

    firefox并不支持selectSingleNode和selectNodes的解决方法 function test(){ var perid = document.thisForm.PerID.va ...

  3. mysql导出csv文件excel打开后数字用科学计数法显示且低位变0的解决方法

    Excel显示数字时,如果数字大于12位,它会自动转化为科学计数法:如果数字大于15位,它不仅用于科学技术费表示,还会只保留高15位,其他位都变0. Excel打开csv文件时,只要字段值都是数字,它 ...

  4. 用视频编辑软件打不开jpg格式的图片的解决方法

    有时候我们把PSD.JPG等图片导入到素材库中会发现EDIUS视频编辑软件根本就不支持,显示黑屏状态.可是当我们把图片导入EDIUS NX支持下的premierepro里却能够正常显示.这是什么原因呢 ...

  5. 关于“类不能支持Automation操作”错误的解决方法

    一段程序IE上老是提示“类不支持Automation操作”的错误,IE6.7.8都一样,但是Firefox可以,后来网上找到如下解决方法: 重新注册下以下文件,问题便解决了:msscript.ocxd ...

  6. PIL PNG格式通道问题的解决方法

    近来研究图片的剪切拼接,用到PIL,在打开PNG格式保存为JPEG格式的图片发现报错: import os from PIL import Image im = Image.open(r'E:\wor ...

  7. error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int 错误的解决方法

    一些函数定义中,在VC6中,如果没有显示的指定返回值类型,编译器将其视为默认整型:但是vs2008/vs2010不支持默认整型,解决这个问题不能修改每个没有显示指示返回值类型的函数地方,可以用排除44 ...

  8. VS2013在Windows7 64位上变慢的解决方法

    重装了windows7系统,又重装了vs2013,发现在打开vs2013.编译工程及调试的时候,vs2013都会变的比较慢,参考网上资料,这里列出几种可能的解决方法: 1.      打开工具--&g ...

  9. iOS录音后播放声音变小的解决方法

    目前需求是录音之后再播放出来.经常会出现播放声音变很小的情况. 解决方法: if (recorder.recording){ [recorder stop]; } [[AVAudioSession s ...

  10. 说说 JSON 格式的弊端与解决方法

    JSON 格式是目前最流行的数据交互格式,广泛应用于前后端分离的系统.但也有一些场合不适合使用 JSON 格式. 1 JSON 格式弊端 有这样的一个需求:希望把客户端的日志上传到服务器存储起来.原先 ...

随机推荐

  1. 统计学习导论之R语言应用(三):线性回归R语言代码实战

    统计学习导论(ISLR) 参考资料 The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导 ...

  2. openstack 下云主机所在目录

    1.先查看云主机运行在哪个节点 2. [root@compute01 ~]# cd /var/lib/nova/instances/ 注: 云主机是一台链接克隆的虚拟机,_base 是母盘, fa56 ...

  3. python菜鸟学习: 10. 函数的基本用法

    # -*- coding: utf-8 -*-# 回参函数def test01(): return 0# 以元组返回参数def test02(): return 1, [1, 2, 3, 4, 5], ...

  4. 织梦dede批量替换文章标题、关键词、正文内容等解决办法介绍

    织梦dede批量替换文章标题.关键词.正文内容等解决办法介绍 相信对于很多织梦dedecms站长来说,应该经常遇到采集文章或者复制别人文章,需要批量修改文章标题.关键词.正文.作者.来源.日期等等相关 ...

  5. 关于JDK1.8 java HashMap的tableSizeFor的解析:一个数最近2的幂次数方法

    简介 一个数的最近2的幂次数,是java hashmap初始化方法指定容量里面对容量进行处理采用的方法 1.位运算符号介绍 符号 描述 运算规则 & 与 两个位都为1时,结果才为1 | 或 两 ...

  6. linux安装等

    软碟通刻入某版本linux 推荐方法 2) 1) U盘启动 修改vmlinuz initrd=initrd.img linux dd quiet 查看U盘盘符 重启修改hd:/dev/sd** qui ...

  7. Day14-封装、继承、多态

    封装.继承.多态 一.封装 package Demo; //类 private私有 public class student { //属性私有 //名字 private String name; // ...

  8. 操作系统|01.Windows

    Windows基础 1.系统目录 1.1 C盘根目录 Data:Windows系统目录,放置程序的使用数据.设置等文件. MyDrivers:驱动程序文件夹. PerfLogs:日志文件夹. Prog ...

  9. Jenkins在windows环境下的3种部署方式

    本文主要介绍Jenkins在windows环境下的3种部署方式: (1)官网下载jenkins.msi文件直接安装.jenkins官网地址:https:/jenkins.io/zh/ (2)jenki ...

  10. 类内函数的override问题-方法

    Question: have a base class with a virtual function: class Base { public: virtual void Function(); } ...