他山之石,可以攻玉
本周开发的一个小事件
前因后果
本周遇到了一个小问题, 苹果手机拍照上传图片会旋转 90 度,不是你拍好的照片旋转,而是在抉择上传图片的时候,抉择拍照而后再上传,这个时候图片就会被旋转 90 度。然而我查看了一下我的代码,我的代码未曾解决过这一段,那问题出在哪里呢?我陷入了深思,于是开始关上了百度,开始面向百度编程:
所以这是苹果手机的问题, 然而为什么在苹果手机中没有呈现这种旋转,上传到服务器在浏览器上看就呈现了旋转呢,是不是这张图片携带了暗藏属性呢?
而后我又搜了搜发现起因是:
我看到了这里有 js,于是就想让前端的同学帮忙解决一下,又想到前端要跨浏览器也比拟麻烦,所以我的想法是我这里获取图片的属性,获取暗藏属性旋转了多少度:
然而这又要引入了新的库,我陷入了两难,于是跟共事交换了一下,共事说能不能把这部分暗藏的数据给打消掉,也能实现咱们的指标, 于是我就去 Thumbnails 这个外面去找看有没有去除暗藏属性的库,找了半天发现没有这样的办法,而后有点小失望,于是再跟共事进行探讨,共事示意 Thumbnails 的压缩图片能够把这部分属性去掉,像上面这样:
ByteArrayOutputStream byteOutputStream = new ByteArrayOutputStream();
// outputQuality 能够去除图片的暗藏属性
Thumbnails.of(new File("")).scale(1.0).outputQuality(1.0).toOutputStream(byteOutputStream);
byte[] byteArray = byteOutputStream.toByteArray();
// byteArray 曾经是去除暗藏属性的了
// 旋转也其余操作能够基于这个新的 byteArray 来做
在一开始我是没想到问题会用这样的形式来解决,他山之石,可以攻玉。
参考资料
- IOS 上传图片旋转 90 度问题呈现起因及解决方案 https://www.cnblogs.com/justd…