Qt判断文件是否为图片,以及QPixmap加载图片失败的原因

本文介绍了一种解决因图片格式后缀被更改导致加载失败的方法,通过使用QPixmap的loadFromData方法来正确加载图片,并提供了一个判断文件是否为图片的有效方案。
    如果图片的路径没错,那就是图片的后缀名被手动修改了(例如jpg格式被修改成了png),不同格式的图片存储方式有所差别,使用QPixmap的load方法加载时,默认是根据图片的后缀名区分格式,因此正确的加载方法是使用QPixmap的loadFromData方法,如下所示:
    QFile fi(filePath);
    if (fi.open(QIODevice::ReadOnly)) {
        QPixmap pix;
        pix.loadFromData(fi.readAll());
        fi.close();
    }

根据该方法,可以判断某个文件是否为图片,代码如下:

// 根据文件路径,判断文件是否为图片
bool isImage(const QString &filePath)
{
    bool bRet = false;
    
    QFile fi(filePath);
    if (fi.open(QIODevice::ReadOnly)) {
        QPixmap pix;
        pix.loadFromData(fi.readAll());
        
        bRet = !pix.isNull();
        fi.close();
    }
    
    return bRet;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宏笋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值