本文为原创,转载请注明出处: cnzt       文章:cnzt-p

http://www.cnblogs.com/zt-blog/p/6895352.html

本文主要说下iOS上传的照片在安卓机上翻转的问题。

问题:苹果机竖着拍个照片,上传到server,再在安卓手机打开,发现图片翻转了呵呵哒……

原因:苹果手机默认的方向是水平且home键向右的方向,所有竖着拍照相当于顺时针转了90度,恩。所以到安卓手机上翻了90度。

解决方法:

1. 前端js解决

  利用canvas和exif.js(用于读取图片的exit信息,如orientation)达到目的。

  思路:

  html --  input(type=file)输入框,用于上传图片的

  js -- 用FileReader读取file文件,将结果用于新建一个图片Image的src,图片加载完成后创建一个canvas,根据图片大小设置canvas的宽高,将图片画到canvas画布上。用exif.js读取图片的orientation相机的方向信息(1-8),根据方向决定canvas画布需要转多少度,最后将旋转后的canvas转化成dataurl赋值给dom预览。

  orientation参考这里

  弊端:这样只能改变本地预览的图片方向,如果是直接向server发送file文件作为request data,则此方法不能达到目的。

2. server端解决

  server端拿到图片后处理orientation,这可以从根本上解决问题。

最新文章

  1. ddd 聚合根 之 聚合与不聚合 设计
  2. vi学习 常用命令-新建-复制-剪切-粘贴
  3. 动态linq to list排序
  4. 用jq移除某一个特定样式
  5. RequireJS进阶(三) 转
  6. css3学习笔记之用户界面
  7. LeetCode Summary Ranges (统计有序数列范围)
  8. oracle dataguard
  9. Oracle中的delete和truncate的关系
  10. ERP流程图
  11. Loadrunner中参数和变量的使用
  12. 基于busybox的Linux小系统制作 (initrd)
  13. javascript中函数的闭包自调用
  14. Tensorflow从入门到精通之——Tensorflow基本操作
  15. nginx+lua学习
  16. Go语言学习笔记说明
  17. C# Aspose.Cells控件读取Excel
  18. 输入年月日判断是当年第几天(if判断)
  19. python常用模块之logging模块
  20. Asp.net 恢复页面内用户控件内的控件ClientID

热门文章

  1. UISearchBar的使用
  2. (17)zabbix自定义用户key与参数User parameters
  3. Day11名称空间,作用域,闭包函数
  4. LeetCode(92) Reverse Linked List II
  5. 通过 PC 远程控制 Android 的应用 -- 可以将手机屏幕投射显示到电脑上
  6. 【RAID】raid1 raid2 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘
  7. x86保护模式 控制寄存器和系统地址寄存器
  8. [uiautomator篇] 设置@test的执行顺序
  9. Axure:从简单搜索到联想搜索的部件制作
  10. “玲珑杯”ACM比赛 Round #13 B -- 我也不是B,倍增+二分!