簡(jiǎn)述
之前,關(guān)于apng的圖片我只能在瀏覽器上展示,但是無(wú)意之間看到Github一篇關(guān)于apng插件在QT上的應(yīng)用。https://github.com/Skycoder42/qapng。是關(guān)于Linux上的操作,今我在Windows上也跑起來(lái)了?;宋乙稽c(diǎn)時(shí)間,去編譯libpng的源代碼,以及apng的插件補(bǔ)丁。關(guān)于什么是apng,為什么要用apng,這里我就不做太多敘述。具體的可以看下我之前寫的 ,APNG在QT中的使用(一)https://blog.csdn.net/ly305750665/article/details/77972415。
效果
這里,我們很明顯的看到,apng的優(yōu)勢(shì)。上排png圖,下排GIF圖
我們?cè)诳纯碤Q上一些關(guān)于apng的應(yīng)用。
這是QQ的:
這是我模仿QQ的:
代碼
void apngDemo::initControl()
{
for (int column = 0; column < 10; column++)
{
QString imageName = QString(":/apngDemo/Resources/Face/apng/%1.png").arg(column);
QLabel* label = new QLabel(this);
QMovie* apngMovie = new QMovie(imageName, "apng", this);
apngMovie->start();
label->setMovie(apngMovie);
ui.gridLayout->addWidget(label, 0, column);
}
for (int column = 0; column < 10; column++)
{
QString imageName = QString(":/apngDemo/Resources/Face/%1.gif").arg(column);
QLabel* label = new QLabel(this);
QMovie* apngMovie = new QMovie(imageName, "apng", this);
apngMovie->start();
label->setMovie(apngMovie);
ui.gridLayout->addWidget(label, 1, column);
}
}
apnglib庫(kù)編譯步驟
1.https://downloads.sourceforge.net/sourceforge/libpng 下載libpng庫(kù)
2.https://downloads.sourceforge.net/sourceforge/libpng-apng 下載libpng-apng的補(bǔ)丁文件
3.編譯生成帶支持apng格式的libpng庫(kù)
4.重新編譯https://github.com/Skycoder42/qapng 源碼,生成相應(yīng)qapng庫(kù)文件
5.將生成的qapng庫(kù)文件,拷貝到qt安裝目錄插件目錄下,如下圖
6.在我們對(duì)應(yīng)的工程目錄下,看我代碼實(shí)現(xiàn)DEMO樣例。
7.如果你編譯嫌麻煩,或者不知道怎么編譯的,可以加我QQ,直接要編譯好的庫(kù)文件?;蛘卟欢牡胤健?/p>
工程文件
Qt交流大會(huì) 853086607 免費(fèi)群中
結(jié)尾
不定期上傳新作品,解答群中作品相關(guān)問題。相關(guān)外,能解答則解答。歡迎大家一起探索Qt世界!