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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
php smarty截取中文字符乱码问题?gb2312/utf-8
Nov 07 PHP
PHP编码转换函数 自动转换字符集支持数组转换
Dec 16 PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 PHP
php修改NetBeans默认字体的大小
Jul 02 PHP
zf框架的校验器使用使用示例(自定义校验器和校验器链)
Mar 13 PHP
PHP中Memcache操作类及用法实例
Dec 12 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
thinkPHP实现将excel导入到数据库中的方法
Apr 22 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
Dec 21 PHP
stripos函数知识点实例分享
Feb 11 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
dedecms 制作模板中使用的全局标记图文教程
2007/03/11 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
php中数字、字符与对象判断函数用法实例
2014/11/26 PHP
VPS中使用LNMP安装WordPress教程
2014/12/28 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
javascript 操作cookies及正确使用cookies的属性
2009/10/15 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
js控制表单操作的常用代码小结
2013/08/15 Javascript
jquery ready(fn)事件使用介绍
2013/08/21 Javascript
jquery中的ajax方法怎样通过JSONP进行远程调用
2014/05/04 Javascript
jquery实现带缩略图的可定制高度画廊效果(5种)
2015/08/28 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
Vue.js组件通信的几种姿势
2017/10/23 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
JS错误处理与调试操作实例分析
2020/04/13 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
python交互式图形编程实例(一)
2017/11/17 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
2019/03/30 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
python3排序的实例方法
2020/10/20 Python
M1芯片安装python3.9.1的实现
2021/02/02 Python
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
Ruby如何创建一个线程
2013/03/10 面试题
师范毕业生自我鉴定
2014/01/15 职场文书
英语专业学生个人求职信
2014/01/28 职场文书
职工代表大会主持词
2014/04/01 职场文书
优秀的应届生自荐信
2014/05/23 职场文书
九一八事变演讲稿范文
2014/09/14 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python
MySQL单表千万级数据处理的思路分享
2021/06/05 MySQL