浏览器图片旋转引发的血案----眼见不一定为实

前几天遇到一个问题,刚刚接入的一种拍照方式–IOS native 拍照上传的图片进行不了人脸识别。更加诡异的是同一张照片使用H5上传和使用ios native 方式上传,也是native不行,下面是排查这个问题经历的过程。

浏览器图片旋转引发的血案----眼见不一定为实_第1张图片
唤起IOS native拍照,人脸识别不出.png

通过上面的过程可以看出:根本的原因就是IOS没有做人脸方向的强制定位成正向,造成有些系统稍有差异,进行强制定位后就可以了。在排查问题时有一个关键的路径就是图片明明是横着的,为啥在浏览器中是竖着显示,这直接导致排查方向的改变,走向一条不正确的路,浪费了近一上午的时间。下面就来简单说一下原因:EXIF(Exchangeable Image File)是 “可交换图像文件” 的缩写,当中包含了专门为数码相机的照片而定制的元数据,可以记录数码照片的拍摄参数、缩略图及其他属性信息,简单来说,Exif 信息是镶嵌在 JPEG/TIFF 图像文件格式内的一组拍摄参数,需要注意的是 EXIF 信息是不支持 png,webp 等图片格式的。对于 Orientation 参数,简单的说是记录图片拍摄的相机的旋转信息,浏览器 (需要浏览器支持) 可以根据这个参数中的 val 信息自动旋转图片到正确的方向,所以即使是拍摄方向错误的照片也会被浏览器矫正。
事情不难理解,但也要引起我们的反思:
1. 眼见的不一定为实,以事实为准。
2. 不要忽视细节。当时给对方技术图片时,已经发现了两张图片的本质区别就是图片的方向,但是没有重视起来。
3. 涉猎要广泛,任何一个你不知道的点都有可能成为最终阻碍你脚步的绊脚石
与君共勉吧,希望对大家有帮助。

你可能感兴趣的:(浏览器图片旋转引发的血案----眼见不一定为实)