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

   主要是借助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>  

猜你喜欢

转载自blog.csdn.net/lengyuezuixue/article/details/80896612