博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 上传的图片在HTML上显示时,图片方向信息(EXIF Orientation)异常
阅读量:5229 次
发布时间:2019-06-14

本文共 795 字,大约阅读时间需要 2 分钟。

 

 

iPhone 6s拍摄的照片上传到服务器之后,

Web网页上看到图片被逆时针旋转了90度

这让我很惆怅呐!

 

 

 

出现这个问题其实是因为上传的图片为.jpg格式,.jpg文件含有EXIF信息

其中EXIF信息中有个参数Orientation可以表明图片的显示方向。

经过一段时间的Debug,我发现我上传的图片里的EXIF中的Orientation参数的值为6

我所期望的其实是1,这里是6,所以图片发生了旋转。

 

 

 

 

 

那么,如何解决这个问题呢?

重新设置这个Orientation值吗?我这么懒,当然不想啦!

幸好,.png格式的图片并不包含EXIF信息

如果你确实想修改EXIF信息,后文我也顺便附上了修改教程的链接。

 

 

 

所以我可以将UIImage通过UIImagePNGRepresentation转换成.png格式文件的Data

然后上传即可,而且服务端并没有规定我必须传.jpg格式的图片

 

 

 

然而,我发现这样上传的图片的文件大小很大诶!

有多大呢?

至少UIImageJPEGRepresentation(image, 1.0)生成的要大很多

 

 

 

 

那么,如何解决这个文件大小问题并且还要去除EXIF信息呢?

 

 

 

 

我想你也应该猜到我的做法了,哈哈!

1.将UIImage通过UIImagePNGRepresentation转换成.png格式文件的Data,这一步去除EXIF信息

2.用生成的Data生成新的UIImage(newImage),这一步为压缩文件大小做准备;

3.通过UIImageJPEGRepresentation(newImage, 0.6)得到没有EXIF并且文件大小达标的Image的Data。

Okay,上传吧!

 

 

 

 

参考资料:

 

 

 

 


 

Ficow原创,转载请注明出处:

转载于:https://www.cnblogs.com/ficow/p/7307376.html

你可能感兴趣的文章
oracle函数 to_single_byte(c1)
查看>>
SuperSocket内置的命令行协议
查看>>
java基本数据类型
查看>>
java面向接口编程之适配器模式
查看>>
testparm - 检查smb.conf配置文件的内部正确性
查看>>
iOS开发UI篇—UITabBarController简单介绍
查看>>
MAC OX 配置JDK环境变量
查看>>
数据结构与算法自学系列之动态规划(一)
查看>>
《团队-----吃货之家------项目总结》
查看>>
在Android迷你广告上添加浮动的关闭按钮
查看>>
python之HTMLParser解析HTML文档
查看>>
Attach、Detach和DeleteObject
查看>>
JSON跨域解决方案收集
查看>>
Oracle Database 12c 新特性 - Pluggable Database
查看>>
小白爬坑的第一天:Oracle数据库版本11g在Linux无图形界面下的静默安装。
查看>>
51nod 1444 破坏道路(任意两点最短路径)
查看>>
串口上位机程序编写
查看>>
kindeditor上传图片时候,上传成功了,但是页面上却提示失败
查看>>
九度OJ-1001-A+B矩阵-有些小技巧
查看>>
golang之if
查看>>