Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)
最近,QQ上好多各种gif表情。每一个都很经典呀。。于是我就想把它转换成一张张静态图片。。。没学过ps。于是写了几行代码。完工。核心代码如下
主要是借助QMovie类。文件读取模式选择QMovie::CacheAll 这样就可以缓存所有图片。然后结束jumpToFrame来切换图片。循环搞定。。
- void MainWindow::getStaticPhoto()
- {
- if (m_GifPath == "" || m_SaveDirPath == "")
- return;
- m_pMovie = new QMovie;
- m_pMovie->setFileName(m_GifPath);
- m_pMovie->setCacheMode(QMovie::CacheAll);
- for (int i =0; i< m_pMovie->frameCount(); ++i) {
- m_pMovie->jumpToFrame(i);
- QImage image = m_pMovie->currentImage();
- QFile file(m_SaveDirPath+QString("/%1.jpg").arg(i));
- file.open(QFile::WriteOnly);
- image.save(&file, "JPG");
- file.close();
- }
- }
- 其中, m_GifPath为gif文件路径。 <span style="font-family: Arial, Helvetica, sans-serif;">m_SaveDirPath为文件夹路径。在此目录下存放转换后的图片资源。 </span>
http://blog.csdn.net/wu5151/article/details/47107189