1, JPEG文件格式是以 {0XFF, 0XD8}开始,以{0XFF, 0XD9}结束
2, PNG开头是8字节的标识 { 0X89, 0X50, 0X4E, 0X47, 0X0D, 0X0A, 0X1A, 0X0A}
http://blog.csdn.net/include1224/article/details/5195470
Opencv加载一幅图片的时候只看图片实际的图片格式,与后缀名无关;所以如果一幅图片实际是Opencv支持的图片格式,即使后缀名是txt也没关系。
但如果某个文件打着jpg的后缀名,但实际却是其他乱七八糟的格式,那么如果不加判断的cvLoadImage一幅“图片”,可能就会出错。出错的原因有:1.文件虽然是jpg等图片后缀,但实际不是图片,或者不是Opencv支持的图片----如gif;2.图片不完整(这种情况在读入之前是无法判断的,所以只好用try catch来解决了)。所以在load一幅图片之前最好添加一个判断操作。
.Net里有现成的类可以进行这个判断,如:
- System::Drawing::Image^ img_valid = System::Drawing::Image::FromFile("图片路径");//由文件创建一个Image类变量