千家信息网

Qt怎么实现PNG图片警告去除工具

发表于:2024-10-06 作者:千家信息网编辑
千家信息网最后更新 2024年10月06日,本篇内容介绍了"Qt怎么实现PNG图片警告去除工具"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、
千家信息网最后更新 2024年10月06日Qt怎么实现PNG图片警告去除工具

本篇内容介绍了"Qt怎么实现PNG图片警告去除工具"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、前言

在新版的Qt5中,我们之前在Qt4中使用的png图片,到了这里经常会报一个警告,libpng warning: iCCP: known incorrect sRGB profile,尽管这种警告眼不见为净,可以忽略,但是对于追求完美的程序员来说,这看起来就是很不爽的事情,可能是因为Qt5增加了png的检查或者使用的png的库的版本不一致导致的吧,处理的办法有好几种,一种是用PS软件或者其他图片编辑软件,重新保存图片的时候不要勾选ICC配置文件,去掉png图像的icc配置文件就可以了,另一种办法是直接使用Qt自己的QImage来实现另存为,既然是QImage那当然完美的支持自家的图片处理咯,肯定不会再有警告啦。

二、代码思路

void frmPngTool::on_btnOk_clicked(){    files.clear();    //将单个文件加入队列    QString currentFile = ui->txtFile->text().trimmed();    if (currentFile.isEmpty()) {        files.append(currentFile);    }    //将该目录下的所有png文件存入链表    QString currentDir = ui->txtDir->text().trimmed();    if (!currentDir.isEmpty()) {        QDir imagePath(currentDir);        QStringList filter;        filter << "*.png";        QStringList list = imagePath.entryList(filter);        foreach (QString str, list) {            files.append(currentDir + "/" + str);        }    }    ui->progress->setRange(0, files.count());    ui->progress->setValue(0);    int count = 0;    foreach (QString file, files) {        qDebug() << "current file:" << file;        QImage image(file);        image.save(file, "png");        count++;        ui->progress->setValue(count);        qApp->processEvents();    }    qDebug() << "finsh";}

三、效果图

"Qt怎么实现PNG图片警告去除工具"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

0