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 相关文章推荐
php简单socket服务器客户端代码实例
May 18 PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 PHP
Yii2创建多界面主题(Theme)的方法
Oct 08 PHP
如何离线执行php任务
Feb 21 PHP
PHP使用数组实现矩阵数学运算的方法示例
May 29 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
微信公众平台开发教程①获取用户Openid及个人信息图文详解
Apr 10 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
Aug 09 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 PHP
PHP解决高并发的优化方案实例
Dec 10 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语法(2)
2006/10/09 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
WordPress主题制作中自定义头部的相关PHP函数解析
2016/01/08 PHP
php模板引擎技术简单实现
2016/03/15 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
javascript 用记忆函数快速计算递归函数
2010/03/15 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
$(document).ready(function() {})不执行初始化脚本
2014/06/19 Javascript
2014年最火的Node.JS后端框架推荐
2014/10/27 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
nodejs个人博客开发第四步 数据模型
2017/04/12 NodeJs
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
2019/07/10 jQuery
Python实现的维尼吉亚密码算法示例
2018/04/12 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
python中栈的原理及实现方法示例
2019/11/27 Python
分布式数据库需要考虑哪些问题
2013/12/08 面试题
英语专业毕业生求职简历的自我评价
2013/10/24 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
2015年采购工作总结
2015/04/10 职场文书
亮剑观后感500字
2015/06/05 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
基于Redis延迟队列的实现代码
2021/05/13 Redis
分析SQL窗口函数之取值窗口函数
2022/04/21 Oracle