简述
之前,关于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的优势。上排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.在我们对应的工程目录下,看我代码实现DEMO样例。
7.如果你编译嫌麻烦,或者不知道怎么编译的,可以加我QQ,直接要编译好的库文件。或者不懂的地方。
工程文件
Qt交流大会 853086607 免费群中
结尾
不定期上传新作品,解答群中作品相关问题。相关外,能解答则解答。欢迎大家一起探索Qt世界!