zoukankan      html  css  js  c++  java
  • qt: 打不开png图像以及opencv加载中文路径问题;

    经过亲测, QT(版本: 5.9.4)提供的QImageReader或者函数load在加载本地png图像时,均会提示失败, 按照网上的方法,将Qt plugins下的imageformats

    拷贝到exe路径下,也不行。

    如果是png图像, 可以通过opencv进行加载,然后将Mat转换为QImage。

    但是有一个问题, 当路径为中文路径时, opencv无法加载,需要将中文进行转码:

    (以下是我收录的两种实现opencv加载中文路径的png图像)

    1.、

            cv::Mat  srcImg;
            QFile file(“D:/测试.png");
            if( file.open(QIODevice::ReadOnly))
            {
                QByteArray byteArr = file.readAll();
                std::vector<char> data(byteArr.data(), byteArr.data() +byteArr.size());
                srcImg = cv::imdecode(cv::Mat(data),1);
                file.close();
            }else
                return;  
    

    2、

    QString strPath = “D:/测试.png";
    std::string path = strPath.toLocal8Bit().toStdString();
    cv::Mat image = cv::imread(path,1 ); 
    

     注: 当代码中包含:

        QTextCodec* codec =QTextCodec::codecForName("utf8");
        QTextCodec::setCodecForLocale(codec);
    

     如果将编码方式设置为随本地系统,那么这种转码可能不行.

  • 相关阅读:
    快速排序算法
    CopyOnWrite容器
    map函数的使用
    Hashmap的源码分析
    Tree数据从后台处理类
    Java开学考试感受
    第49讲:乱入——生成器
    第48讲:魔方方法——迭代器
    第47讲:魔方方法——定制序列
    第46讲:魔方方法——描述符(property的原理)
  • 原文地址:https://www.cnblogs.com/yinwei-space/p/10114531.html
Copyright © 2011-2022 走看看