简单判断图像格式的办法(BMP/JPEG…

      今天遇到一个问题:测试人员发现某些“bmp”文件我们程序无法正确读取。我们是用QT库来读取图像的。似乎不应该出现这种问题,Google也没听到人抱怨。调试进去,发现是读取文件头后发现格式不对,所以QT没有继续读了。用UE打开一看,发现JFIF字样,搜索发现原来这个“bmp”其实是jpg格式的图像文件。
      之后测试了下,发现现在的图像编辑软件对后缀是宽容的。也就说明它们不是根据后缀来判断图像格式的。通过用UE打开BMP/JPEG/PNG/GIF四种格式的文件。我们发现了一些规律,可以根据这些规律简单判断图像的真正格式。判断不出来再使用后缀。
      BMP: 以"BM"开头,也就是文件0x00位置是ascII的'B',0x01位置是ascII的'M'
      JPEG: 0x06-0x09 "JFIF"
      GIF:  0x00-0x02 "GIF"
      PNG:  0x01-0x03 "PNG"
    这种简单判断方式不知道是否是正确全面的,不过目前还未发现问题。就先这样处理了。毕竟那些图像格式的说明文档都老长,暂时先用鸵鸟战术好了哈哈。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值