有没有快速的方法来确定某个任意图像文件是png文件还是jpeg文件,还是没有?
我很确定有一些方法,这些文件可能有某种自己的签名,应该有一些方法来区分它们.
如果可能的话,你能否在libpng / libjpeg / boost :: gil :: io中提供相应例程的名称.
解决方法
除了蒂姆耶茨建议“手动”阅读神奇数字之外,Boost GIL文档还说:
> png_read_image
如果文件不是有效的PNG文件则抛出std :: ios_base :: failure.
> jpeg_read_image
如果文件不是有效的JPEG文件则抛出std :: ios_base :: failure.
与其他Boost GIL例程类似.如果您只想要类型,则可能只想尝试读取dimensions,而不是加载整个文件.