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

最近,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

posted @ 2015-12-27 05:14  findumars  Views(2255)  Comments(0Edit  收藏  举报