簡述
之前,關于apng的圖片我只能在瀏覽器上展示脉顿,但是無意之間看到Github一篇關于apng插件在QT上的應用谱轨。https://github.com/Skycoder42/qapng。是關于Linux上的操作幌陕,今我在Windows上也跑起來了供璧〈嫜拢花了我一點時間,去編譯libpng的源代碼睡毒,以及apng的插件補丁来惧。關于什么是apng,為什么要用apng,這里我就不做太多敘述吕嘀。具體的可以看下我之前寫的 违寞,APNG在QT中的使用(一)https://blog.csdn.net/ly305750665/article/details/77972415。
效果
這里偶房,我們很明顯的看到趁曼,apng的優(yōu)勢。上排png圖棕洋,下排GIF圖
我們在看看QQ上一些關于apng的應用挡闰。
這是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庫編譯步驟
1.https://downloads.sourceforge.net/sourceforge/libpng 下載libpng庫
2.https://downloads.sourceforge.net/sourceforge/libpng-apng 下載libpng-apng的補丁文件
3.編譯生成帶支持apng格式的libpng庫
4.重新編譯https://github.com/Skycoder42/qapng 源碼,生成相應qapng庫文件
5.將生成的qapng庫文件掰盘,拷貝到qt安裝目錄插件目錄下摄悯,如下圖
6.在我們對應的工程目錄下,看我代碼實現(xiàn)DEMO樣例愧捕。
7.如果你編譯嫌麻煩奢驯,或者不知道怎么編譯的,可以加我QQ次绘,直接要編譯好的庫文件瘪阁。或者不懂的地方邮偎。
工程文件
Qt交流大會 853086607 免費群中
結尾
不定期上傳新作品管跺,解答群中作品相關問題。相關外禾进,能解答則解答豁跑。歡迎大家一起探索Qt世界!