首页 > 其他 > 详细

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

时间:2015-12-27 06:19:34      阅读:982      评论:0      收藏:0      [点我收藏+]

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

 

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

 

[cpp] view plaincopy
 
  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.   
  9.     for (int i =0; i< m_pMovie->frameCount(); ++i) {  
  10.   
  11.         m_pMovie->jumpToFrame(i);  
  12.         QImage image = m_pMovie->currentImage();  
  13.         QFile file(m_SaveDirPath+QString("/%1.jpg").arg(i));  
  14.         file.open(QFile::WriteOnly);  
  15.         image.save(&file, "JPG");  
  16.         file.close();  
  17.     }  
  18. }  

 

[cpp] view plaincopy
 
    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另存为图片文件)

原文:http://www.cnblogs.com/findumars/p/5079454.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!