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