PHP 中 Orientation 属性判断上传图片是否需要旋转


Posted in PHP onOctober 16, 2015

当使用苹果的iOS系统拍照上传图片的时候,可能会遇到图片被旋转的问题,这主要是取决于你拍照时拍照按钮的位置。假设拍照时你把手机旋转过来底部朝上,那拍出来的照片也是被旋转了的。

下面的代码将确保所有上传的照片在上传时都能是正确定向:

<?php
$image = imagecreatefromstring(file_get_contents($_FILES['image_upload']['tmp_name']));
$exif = exif_read_data($_FILES['image_upload']['tmp_name']);
if(!empty($exif['Orientation'])) {
 switch($exif['Orientation']) {
  case 8:
   $image = imagerotate($image,90,0);
   break;
  case 3:
   $image = imagerotate($image,180,0);
   break;
  case 6:
   $image = imagerotate($image,-90,0);
   break;
 }
}
// $image now contains a resource with the image oriented correctly
?>

经测试,Android拍照的 Orientation 属性都是1,判断不出是否被旋转了。

PHP 相关文章推荐
提问的智慧
Oct 09 PHP
PHP XML备份Mysql数据库
May 27 PHP
PHP中用hash实现的数组
Jul 17 PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 PHP
PHP中SESSION使用中的一点经验总结
Mar 30 PHP
PHP的一个完美GIF等比缩放类,附带去除缩放黑背景
Apr 01 PHP
PHP获取昨天、今天及明天日期的方法
Feb 03 PHP
微信支付开发动态链接Native支付
Jul 12 PHP
PHP批量获取网页中所有固定种子链接的方法
Nov 18 PHP
PHP常用排序算法实例小结【基本排序,冒泡排序,快速排序,插入排序】
Feb 07 PHP
PHP数组array类常见操作示例
May 15 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 #PHP
php示例详解Constructor Prototype Pattern 原型模式
Oct 15 #PHP
PHP经典面试题之设计模式(经常遇到)
Oct 15 #PHP
PHP面试题之文件目录操作
Oct 15 #PHP
php cli配置文件问题分析
Oct 15 #PHP
PHP+Mysql+jQuery实现发布微博程序 php篇
Oct 15 #PHP
10个php函数实用却不常见
Oct 13 #PHP
You might like
php SQL防注入代码集合
2008/04/25 PHP
PHP 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
PHP5中使用DOM控制XML实现代码
2010/05/07 PHP
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
JQuery EasyUI 日期控件如何控制日期选择区间
2014/05/05 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
javascript-解决mongoose数据查询的异步操作
2016/12/22 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
详解JS中统计函数执行次数与执行时间
2018/09/04 Javascript
在微信小程序中渲染HTML内容的方法示例
2018/09/28 Javascript
JavaScript之解构赋值的理解
2019/01/30 Javascript
基于vue实现图片验证码倒计时60s功能
2019/12/10 Javascript
es6中let和const的使用方法详解
2020/02/24 Javascript
JavaScript实现字符串与HTML格式相互转换
2020/03/17 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
使用Python写个小监控
2016/01/27 Python
python 接口测试response返回数据对比的方法
2018/02/11 Python
numpy.std() 计算矩阵标准差的方法
2018/07/11 Python
pytorch 实现将自己的图片数据处理成可以训练的图片类型
2020/01/08 Python
Nginx+Uwsgi+Django 项目部署到服务器的思路详解
2020/05/08 Python
商务会议邀请函
2014/01/09 职场文书
寄语学生的话
2014/04/10 职场文书
商业企业管理专业求职信
2014/07/10 职场文书
2014年统计工作总结
2014/11/21 职场文书
总经理年会致辞
2015/07/29 职场文书
Python中json.load()和json.loads()有哪些区别
2021/06/07 Python