最近,QQ上好多各种gif表情。每一个都很经典呀。。于是我就想把它转换成一张张静态图片。。。没学过ps。于是写了几行代码。完工。核心代码如下

主要是借助QMovie类。文件读取模式选择QMovie::CacheAll 这样就可以缓存所有图片。然后结束jumpToFrame来切换图片。循环搞定。。

  1. void MainWindow::getStaticPhoto()
  2. {
  3. if (m_GifPath == "" || m_SaveDirPath == "")
  4. return;
  5. m_pMovie = new QMovie;
  6. m_pMovie->setFileName(m_GifPath);
  7. m_pMovie->setCacheMode(QMovie::CacheAll);
  8. for (int i =0; i< m_pMovie->frameCount(); ++i) {
  9. m_pMovie->jumpToFrame(i);
  10. QImage image = m_pMovie->currentImage();
  11. QFile file(m_SaveDirPath+QString("/%1.jpg").arg(i));
  12. file.open(QFile::WriteOnly);
  13. image.save(&file, "JPG");
  14. file.close();
  15. }
  16. }
    1. 其中, m_GifPath为gif文件路径。 <span style="font-family: Arial, Helvetica, sans-serif;">m_SaveDirPath为文件夹路径。在此目录下存放转换后的图片资源。 </span>

http://blog.csdn.net/wu5151/article/details/47107189

Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)的更多相关文章

  1. Android 开发小工具之:Tools 属性 (转)

    Android 开发小工具之:Tools 属性 http://blog.chengyunfeng.com/?p=755#ixzz4apLZhfmi 今天来介绍一些 Android 开发过程中比较有用但 ...

  2. QT程序--小工具集合

    这是在大一第一学期时写的参加程序设计大赛的作品,当时参加的时候仅仅只有贪吃蛇,迷宫算法和文件加密这三个功能,而且当时的界面并没有进行任何美化,现在想起来有点可惜.然而这并不是一个只写一遍的软件,在后期 ...

  3. xamarin开发的mac开发小工具集合

    兄弟们我拖控件拖到了mac系统去了, 工具上传到百度网盘,下载地址 链接:https://pan.baidu.com/s/1Q64zoRjE3u66jJnzF8rhww提取码:ljx2 这款工具我是用 ...

  4. javaWeb开发小工具---MailUtils及其单元测试

    本次介绍的是,在javaWeb开发中,我们不免会遇到发送邮件的需求,比如:用户注册账号,需要激活登录,以及服务器定期向会员发送礼品信息等.所以参考有关资料,写了这个MailUtils工具类. 1.Ma ...

  5. Android 开发—— 小工具,大效率

    欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 作者:姚志锋 一.Hugo插件 -- 打印方法运行时间 首先申明下,此Hugo非 彼Hugo(Hugo是由Go ...

  6. javaWeb开发小工具--MyCommonUtils

    MyCommonUtils 参考一些资料,写了这个工具类.在这个工具类中,主要实现了2个方法: 1.生成随机的序列号 uuid(): 2.将Map中的数据封装到javaBean对象中toBean(Ma ...

  7. CSS便捷开发小工具汇总

    1.Prefix free 可以帮助开发者省去编写各种CSS3属性前缀的工作,只需要在页面中引入prefixfree.js即可. 2. Normalize 是一个CSS Reset工具, 相比传统的R ...

  8. iOS开发小工具

    基本上在Mac Appstore里面都有,很多是免费的.因为某种原因要重装Mac系统(这么多年来首次重装Mac系统),特意整理了下备忘. 1.AppIcon: 可以瞬间把图片转换为应用所需要的Icon ...

  9. iPhone开发小工具

    1.AppIcon: 可以瞬间把图片转换为应用所需要的Icon(Icon-72.png,Icon-72@2x.png,......iTunesArtwork@2x)   2.Resizer: 方便把- ...

随机推荐

  1. C++中#include <xxx.h>和#include "xxx.h"的区别(尖括号和双引号的区别)

    第一种方式:采用< >方式,表示让编译器在编译器的预设标准路径下去搜索相应的头文件,如果找不到则报错. 例如:VS2015的安装目录\Microsoft Visual Studio 14. ...

  2. [转]PB 基本语句 循环语句

    PB 基本语句一.赋值语句赋值语句用于给变量.对象属性赋值,这是应用程序中使用最频繁的语句,其语法格式为:variablename = expression_r其中:⑴variablename是变量名 ...

  3. 软件开发常用Linux命令

    解压缩 tar -zxvf xxx.tar.gz 文件显示及查找常用于分析log //显示file中包含aaa的行 cat <file>|grep aaa 查看cpu memory基本信息 ...

  4. jsp建立错误页自动跳转

    在各个常用的web站点中,经常会发现这样一个功能:当一个页面出错后,会自动跳转到一个页面上进行错误信息的提示. 想要完成错误页的操作,则一定要满足两个条件: 1.指定错误出现时的跳转页,通过error ...

  5. Notes常用事件整理

    ①      ボタンのクリック事件: Sub Click(Source As Button) Dim ws As New NotesUIWorkspace Dim uidoc As NotesUIDo ...

  6. java 构造方法 constructor demo笔记

    demo 地址 http://pan.baidu.com/s/1bo2FG1T package com.ws.study; /** * @author Administrator * */ publi ...

  7. Optipng—PNG的优化图像工具初探

    PNG 即 Portable Network Graphic 的简称,PNG 图像是一种无损压缩图像文件格式.因为网络传输的需要,我们总是希望 PNG 图像的容量能够小些.小些.再小些.要优化 PNG ...

  8. HDU 3362 Fix

    题目大意:题目给出n(n <= 18)个点的二维坐标,并说明某些点是被固定了的,其余则没固定,要求添加一些边,使得还没被固定的点变成固定的,当一个没固定的点和两个固定了的点连接后,该点就被间接固 ...

  9. (Android) ContentProvider 实例

    ContentProvider 用于应用程序(Android Application)之间传递数据,包括Insert, update, delete, query. 下面的例子是在两个应用之间传递数据 ...

  10. 第七届河南省赛A.物资调度(dfs)

    10401: A.物资调度 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 95  Solved: 54 [Submit][Status][Web Bo ...