Android端上传图片至服务器改变方向的问题

第一次写博客有点紧张,主要是遇到了一个非常有趣的问题,想记录一下。
我会上传一个压缩包里面有8张图片,8张图片的orientation是不一样的,你在win上打开和Android打开,图片的朝向是完全不一样的。

问题描述

Android端拍个照片,然后上传到服务器上进行处理,没想到出了bug,在服务器接受到照片的时候,这个照片突然就改变了位置,本来竖着的,到服务器上突然横过来了,电脑上查看的时候还没有问题,Android系统8.0,服务器linux,电脑win10。

问题根源

问题的根源很明显就出在系统对于照片的处理上,比如说张三就会横着看图片,李四就会竖着看图片,是这个看图片的方法导致了不同系统的不同显示

相关的知识点_图片的信息 Exif

这个东西是专门用来存储数码相机照片的相关信息的,但是手机拍的图片也会有这个东西,这算是一个信息头部,因为图片不可能就是一串简单 字符串拼接而成,一定是有照片的信息和这个照片在一块。 在这个Exif中 有一个orientation(方向),这个orientation有8个值可取,包括上下左右四个方向,以及这四个方向的镜像,这个方向就是我们这个我们问题的关键。

每个系统处理orientation的方法不一样,win和Android这种和用户交互较强的系统会预先处理,比如说有个图片,orientation取值是6,但是win和Android知道,只有orientation为1的时候最方便用户看,所以他会调整图片的方向,调整完之后再展示出来,这时你用PS打开看 orientation的值变成了1,但是传到别的系统又变了(无奈)

解决方案

图片拍完之后,读取exif的orientation的值,根据值进行旋转,旋转到正常之后把orientation设置成1,这样别的系统看到这个图片orientation为1,就知道了这个是1(标准)的了,就不会再对他进行变动了,这样就解决这个bug了,不上具体的代码了,因为代码写的太low了,有思路了就行。

具体的解释可以看这个大佬的博客
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/taoszu/article/details/83051879
版权声明:本文为CSDN博主「少年阿涛」的原创文章,遵循 CC 4.0 BY-SA
版权协议,转载请附上原文出处链接及本声明。

(在此提醒大家注意保护隐私,不要胡乱传照片,一些Android手机拍照的时候会记录拍照时间地点等信息)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值