很多时候手机或相机里明明正常的图片,为什么上传了就不是正的?是网站对图片进行了旋转么?图片翻转的秘密在此揭开~
为啥网页中的图片,翻倒了?
二狗子在手机相册里看了一下刚拍的照片,没问题呀,显示是正的。
“嗯?搞事情?”二狗子又重新上传了一遍,刷新网页再看,图片还是翻转的。
二狗子担心是不是上传代码出了问题,急忙回家打开电脑确认。
“没问题呀,上传别的照片都是正常的。”二狗子又把照片导出到电脑上看,也还是正的。
“这是怎么回事?”
二狗子百思不得其解,决定上网查询一下。他打开万能的百度,看看别人有没有碰到过这个问题。
网页中跳出了一个英文词,EXIF映入了二狗子的眼帘。
EXIF,全称Exchangeableimagefileformat,是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
图像信息(厂商,分辨率等)
相机拍摄记录(ISO,白平衡,饱和度,旋转方向等)
缩略图(缩略图宽度,高度等)
gps(拍摄时的经度,纬度,高度)等
这些信息会按照EXIF标准放在图像文件中,任何支持EXIF标准的程序都可以轻松得到这些信息。
EXIF中包含一个Orientation参数,它用来记录图片拍摄相机的旋转信息。
“原来是EXIF搞的鬼。”那就是说,浏览器在加载图片过程中,读取到了图片里的EXIF旋转信息,导致图片被翻转显示了。
知道了原因的二狗子开始兴奋起来,“只要把EXIF的旋转信息调整回正确的值,就可以了吧!”
二狗子在网上找了一款可以查看修改图片EXIF的工具,先打开图片查看Orientation信息。
果然有旋转信息,而且图片打开也是和网页中显示的一样,倾倒了90°。
二狗子进入编辑页面,将Orientation值改为1,然后保存。
二狗子将修改后的图片重新上传了一遍,再从网页中看,图片终于归正了。
“成功了!”二狗子心头一块石头终于落地。
但是转念一想,如果后面还有这种类型的图片,每一张都这么修改,岂不是要累死了?
还是得找个更加方便快捷的方式来处理。对了,图片都是存放在又拍云存储里的,看看云存储那边有没有什么好的解决办法吧。
二狗子询问了又拍云的客服,客服乔巴告诉他,可以通过云处理,快速的对图片进行自动扶正处理。
“通过URL作图的方式,在图片地址后使用间隔标识符接上相应的作图参数,就可以实现对图片的快速处理。”
解决了图片翻转问题的二狗子,不由得又开始泛起了嘀咕:“这EXIF是个好技术,可是偶尔也会有导致一些奇怪的问题,而且其中还有拍摄时的GPS信息记录,放在公网上还是会有安全隐患,我能不能去掉这个信息呢?”
二狗子决定再看一看云处理的作图参数,看有没有跟去除EXIF信息有关的参数。
果然。
可以使用/strip/true参数来给图片去除掉EXIF信息。
二狗子又看了看其它的作图参数。
常见的图片的缩小,放大和裁剪等功能都有提供,可以通过参数/fw/fh/both/sq等方式来指定图片的宽/高,或在原图进行等比率缩小,扩大的方式进行处理。
这可真是太方便了,之前二狗子都是在代码里调整图片大小、缩放等等样式,现在完全可以借助又拍云存储和云处理功能,前端在引用图片的时候,可给图片地址后边接入作图参数,来实现对图片的处理了。
但是这也带来一个新的问题,所有的作图参数都拼接在图片地址里,一来不好维护,二来也不雅观呀。如果可以把这些参数全部封装起来就好了。
嘿,还真有一个封装的功能,“缩略图版本”。
缩略图版本中包含许多图片处理功能,创建后通过“图片URL+间隔标识符+缩略图版本”的形式就可以进行图片处理了。
二狗子粗略的数了一下,又拍云处理支持缩小、放大、裁剪、图片水印、文字水印、锐化、高斯模糊等40+功能,可以把图片玩出花来了。自己的图片网站,一些规划可以提前做起来了。