当前位置: 首页 > 后端技术 > Java

或许换一种方式可以帮助我们解决问题

时间:2023-04-01 21:52:28 Java

他山之石可以攻玉。本周发生了一件小事。本周的来龙去脉。这周我遇到了一个小问题。苹果手机上传的图片会旋转90度,不是你的。不错的照片旋转,但是选择上传图片的时候,选择拍照再上传。这时候图片会旋转90度。但是我检查了我的代码,我的代码从来没有处理过这一段,那么问题在哪里呢?陷入了沉思,于是我开始打开百度,开始为百度编程:原来这是苹果手机的问题,但是为什么这个轮换在苹果手机上没有出现,而是上传到服务器上查看的时候呢?浏览器,它似乎在旋转?,这张图是不是带隐藏属性了?然后又搜索了一下,发现原因是:看到这里有js,就想请前端同学帮我处理一下,以为是前端跨浏览器会很麻烦,所以我的想法是这里获取图片的属性,获取隐藏属性旋转了多少度:但是这样会引入一个新的库,我左右为难,所以跟同事,同事问这部分隐藏数据能不能去掉,也能实现我们的目的,于是就去Thumbnails找有没有去掉隐藏属性的库。找了半天,发现没有这个方法,后来有点绝望,就和同事商量了一下。同事说Thumbnails的压缩图片可以去掉这部分属性,像这样:ByteArrayOutputStreambyteOutputStream=newByteArrayOutputStream();//outputQuality可以去掉图片的隐藏属性Thumbnails.of(newFile("")).scale(1.0).outputQuality(1.0).toOutputStream(byteOutputStream);byte[]byteArray=byteOutputStream.toByteArray();//byteArray已经去掉了隐藏属性//可以基于这个新的byteArray做旋转等操作一开始没想到问题是这样的解决方法,他山之石可以用来攻击玉石。参考iOS上传图片旋转90度问题的原因及解决办法https://www.cnblogs.com/justd...