专栏首页Qt项目实战Qt开源作品20-PNG图片警告去除工具
原创

Qt开源作品20-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";
}

三、效果图

pngtool.gif

四、开源主页

以上作品完整源码下载都在开源主页,会持续不断更新作品数量和质量,欢迎各位关注。

  1. 国内站点:https://gitee.com/feiyangqingyun/QWidgetDemo
  2. 国际站点:https://github.com/feiyangqingyun/QWidgetDemo
  3. 个人主页:https://blog.csdn.net/feiyangqingyun
  4. 知乎主页:https://www.zhihu.com/people/feiyangqingyun/

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Qt开源作品13-三套样式表

    在做各种各样的项目中,难免遇到需要设定自己界面风格样式的时候,而Qt提供的qss就是牛逼的为了实现定制各种各样的皮肤的,其实一个完美的UI界面,主要由两大块组成...

    feiyangqingyun
  • Qt编写自定义控件65-光晕日历

    操作系统的更新迭代速度非常快,基本上三五年就有个新版本出来,WIN10操作系统还是一个比较成功的系统,据说现在市场份额越来越大,XP的份额已经很小,WIN7的份...

    feiyangqingyun
  • Qt开源作品32-文本框回车焦点下移

    这个demo由于太过简单,而不用过多的文字描述,其实就是实现了在一个文本框中输入完成以后,回车自动跳入下一个文本框,焦点下移,这个在很多的社保系统、医疗系统等系...

    feiyangqingyun
  • PyQt5 资源文件*

    为了解决图标文件(以及帮助文件和其它一些较小的文件)与应用程序目录不匹配 或者 易丢失 的问题,在PyQt中,可以将多个图标文件打包成资源文件,再编译成一个.p...

    用户6021899
  • PyQt5 资源文件

    为了解决图标文件(以及帮助文件和其它一些较小的文件)与应用程序目录不匹配 或者 易丢失 的问题,在PyQt中,可以将多个图标文件打包成资源文件,再编译成一个.p...

    用户6021899
  • 关于跨语种语言模型的讨论

    最近,一个预先训练的模型被证明可以改善下游问题。Lample和Conneau提出了两个新的培训目标来培训跨语言语言模型(XLM)。这种方法可以实现跨语言自然语言...

    AiTechYun
  • 【干货】麦肯锡的思考方式和沟通法则,推荐收藏!

    经理人在规划企业蓝图时,不能只注重策略、结构的硬性变量,也要注重强调员工、技能、管理风格、制度与共同的价值观等软性变量。

    钱塘数据
  • Qt定时器及实现(详解)

    zls365
  • 视频分割--Learning to Segment Instances in Videos with Spatial Propagation Network

    Learning to Segment Instances in Videos with Spatial Propagation Network CVPRW...

    用户1148525
  • 如何实现SAP GUI的自定义语法检查(Syntax check)

    There are already blogs in SCN which introduce how to implement a custom check i...

    Jerry Wang

扫码关注云+社区

领取腾讯云代金券