查看完整版本: [-- Qt编写去除png警告工具 --]

QTCN开发网 -> Qt 作品展 -> Qt编写去除png警告工具 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

liudianwu 2016-09-17 15:08

Qt编写去除png警告工具

自从Qt4.8以后,如果项目资源文件中有png图片,当该png图片加载时,会出现png警告,如下图
[attachment=15784]

很多时候我们不需要看到这些警告,怎么办呢?只需要用QImage另存为png图片即可。来自彩阳兄(http://qtdream.com/ )的点发。
[attachment=15785]

源码下载:[attachment=15786]

nigoole 2016-09-18 09:35
比较实用,但是麻烦~

yuyu414 2016-09-18 11:39
这样做之后好像PhotoShop就打不开了

uidab 2016-09-18 13:21
没遇到过这个警告,我基本上都是png图片。

nigoole 2016-10-11 13:29
目录可以搞一个递归,省的多个目录的图片还得一个一个的点!

greedysky 2016-10-11 22:46
我用Jason的工具也不错。  https://github.com/188080501/JQTools

return 2016-11-21 14:43
我遇上了这样的问题    

jszxd 2017-09-27 12:25
太好了,正需要这个。

fzw003 2019-12-03 16:47
加个递归吧。
int frmPngTool::FindFile(const QString& _filePath)
{
    QDir dir(_filePath);
    if (!dir.exists()) {
        return -1;
    }

  //取到所有的文件和文件名,但是去掉.和..的文件夹(这是QT默认有的)
    dir.setFilter(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot);

    //文件夹优先
    dir.setSorting(QDir::DirsFirst);

    //转化成一个list
    QFileInfoList list = dir.entryInfoList();
    QStringList filter;
    filter << "*.png";
    QStringList infolist = dir.entryList(filter);



    if(list.size()< 1 ) {
        return -1;
    }
    int i=0;

    //递归算法的核心部分
    do{
        QFileInfo fileInfo = list.at(i);
        //如果是文件夹,递归
        bool bisDir = fileInfo.isDir();
        if(bisDir) {
            FindFile(fileInfo.filePath());
        }
        else{
            for(int m = 0; m <infolist.size(); m++) {
                                //这里是获取当前要处理的文件名
//                qDebug() <<_filePath + "/" + infolist.at(m);
                files.append(_filePath + "/" + infolist.at(m));
            }
            break;
        }//end else
        i++;
    } while(i < list.size());
}

shasidaran 2019-12-09 10:10
之前都是用Photoshop批量修改的


查看完整版本: [-- Qt编写去除png警告工具 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled