读文件头判断图片类型
来源:互联网 发布:虚拟机12安装mac os x 编辑:程序博客网 时间:2024/04/28 14:26
(1)JPEG
- 文件头标识 (2 bytes): 0xff, 0xd8 (SOI) (JPEG 文件标识)
- 文件结束标识 (2 bytes): 0xff, 0xd9 (EOI)
(2)TGA
- 未压缩的前5字节 00 00 02 00 00
- RLE压缩的前5字节 00 00 10 00 00
(3)PNG
- 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
(4)GIF
- 文件头标识 (6 bytes) 47 49 46 38 39(37) 61,字符即: G I F 8 9 (7) a
(5)BMP
- 文件头标识 (2 bytes) 42 4D,字符即: B M
(6)TIFF
- 文件头标识 (2 bytes) 4D 4D 或 49 49
(7)ICO
- 文件头标识 (8 bytes) 00 00 01 00 01 00 20 20
(8)CUR
- 文件头标识 (8 bytes) 00 00 02 00 01 00 20 20
(1)对于图片的文件头,大家可以用UE打开一幅图片就可以看到前面的几个字节。下面是读文件头8个字节然后判断图片类型的函数,因为这里我只需要jpeg/bmp/png格式的,所以其他格式的即使是图片也归到nothing里面。
enum ImageType{ jpg, bmp, png, nothing }; ImageType image_type(const char* path) { ifstream inFile(path); uchar png_type[9] = {0x89,0x50,0x4E,0x47,0x0D,0x0A,0x1A,0x0A,'/0'}; uchar file_head[9]; for (int i=0;i<8;++i) { inFile>>file_head[i]; } file_head[8] = '/0'; switch (file_head[0]) { case 0xff: if (file_head[1]==0xd8) return jpg;//jpeg case 0x42: if (file_head[1]==0x4D) return bmp;//bmp case 0x89: if (file_head[1]==png_type[1] && file_head[2]==png_type[2] && file_head[3]==png_type[3] && file_head[4]==png_type[4]&& file_head[5]==png_type[5] && file_head[6]==png_type[6] && file_head[7]==png_type[7]) return png;//png default: return nothing; } }
(2)位图判断
通过UE打开BMP,看到的文件头内容是“B”“M”,对应的ASCII码是0x42,0x4d,但是判断其内容则是通过0x4d42=19778,而不是0x424d=16973判断的。原因是跟存储顺序有关,如下WORD存放: 低字节,高字节。DWORD存放:低字低字节,低字高字节,高字低字节,高字高字节。
参考原文:http://blog.csdn.net/include1224/article/details/5195470
- 读文件头判断图片类型!
- 读文件头判断图片类型
- 读文件头判断图片类型
- 读文件头判断图片类型
- 读文件头判断图片类型!
- 读文件头判断图片类型
- 通过图片文件头判断图片类型
- 通过文件头判断图片类型
- 根据文件头判断图片类型
- 根据文件头判断图片类型
- 根据文件头来判断图片的类型
- 143.根据文件头判断类型
- 通过以二进制方式读取文件 判断文件头得到图片类型 ,上面通过拓展名有缺陷。
- php通过获取头信息判断图片类型
- php通过获取头信息判断图片类型
- IOS学习笔记 - NSFileManager,沙盒路径,NSString类路径处理,NSCache,读取文件头判断图片类型
- 根据文件头信息判断文件真实类型(AS3)
- Python通过文件头来判断文件的真实类型
- 生成一个32位的UUID
- PHP常用函数
- 添加@Transactional后获取不到类前的注解
- jsp的三个编译指令
- Radix-2 迭代FFT
- 读文件头判断图片类型
- java集合类入门
- 关于android手机的无线调试 wireless adb
- MySQL触发器
- 百度地图
- Android 官方推荐 : DialogFragment 创建对话框
- Ideal常用插件
- JPEG文件格式简单分析
- [caffe]深度学习之图像分类模型AlexNet解读