Yip*_*Yay 6 c++ png jpeg image
有没有快速的方法来确定某个任意图像文件是png文件还是jpeg文件,还是没有?
png
jpeg
我很确定有一些方法,这些文件可能有某种自己的签名,应该有一些方法来区分它们.
如果可能,您是否还可以在libpng/ libjpeg/中提供相应例程的名称boost::gil::io.
libpng
libjpeg
boost::gil::io
Tim*_*tes 21
查看文件开头的幻数.从维基百科页面:
JPEG图像文件以FF D8开头,以FF D9结束.JPEG/JFIF文件包含"JFIF"(4A 46 49 46)的ASCII代码,作为空终止字符串.JPEG/Exif文件包含"Exif"(45 78 69 66)的ASCII代码,也作为空终止字符串,后跟有关该文件的更多元数据. PNG图像文件以8字节签名开头,该签名将文件标识为PNG文件,并允许检测常见的文件传输问题:\ 211 P NG\r \n\032 \n
JPEG图像文件以FF D8开头,以FF D9结束.JPEG/JFIF文件包含"JFIF"(4A 46 49 46)的ASCII代码,作为空终止字符串.JPEG/Exif文件包含"Exif"(45 78 69 66)的ASCII代码,也作为空终止字符串,后跟有关该文件的更多元数据.
PNG图像文件以8字节签名开头,该签名将文件标识为PNG文件,并允许检测常见的文件传输问题:\ 211 P NG\r \n\032 \n
Fre*_*Foo 3
除了 Tim Yates 建议“手动”读取幻数之外,Boost GIL 文档还指出:
png_read_image
std::ios_base::failure
jpeg_read_image
对于其他 Boost GIL 例程也是如此。如果您只需要类型,您可能想尝试仅读取尺寸,而不是加载整个文件。
归档时间:
14 年,11 月 前
查看次数:
5902 次
最近记录:
13 年,2 月 前