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的宝库目录--PEAR
Oct 09 PHP
处理php自动反斜杠的函数代码
Jan 05 PHP
《PHP编程最快明白》第六讲:Mysql数据库操作
Nov 01 PHP
PHP分页效率终结版(推荐)
Jul 01 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
PHP实现JS中escape与unescape的方法
Jul 11 PHP
thinkPHP分组后模板无法加载问题解决方法
Jul 12 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
Oct 11 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
Dec 31 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 PHP
TP5框架实现一次选择多张图片并预览的方法示例
Apr 04 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
IIS+fastcgi下PHP运行超时问题的解决办法详解
2013/06/20 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
javascript attachEvent和addEventListener使用方法
2009/03/19 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
JS/FLASH实现复制代码到剪贴板(兼容所有浏览器)
2013/05/27 Javascript
JS代码同步文本框内容的实例方法
2013/07/12 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
后端接收不到AngularJs中$http.post发送的数据原因分析及解决办法
2016/07/05 Javascript
Angularjs使用directive自定义指令实现attribute继承的方法详解
2016/08/05 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
Node.js自定义实现文件路由功能
2017/09/22 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
Vue中使用ElementUI使用第三方图标库iconfont的示例
2018/10/11 Javascript
Vue3 源码导读(推荐)
2019/10/14 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[49:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 KG VS TNC
2018/03/31 DOTA
python遍历类中所有成员的方法
2015/03/18 Python
Python上下文管理器和with块详解
2017/09/09 Python
python利用smtplib实现QQ邮箱发送邮件
2020/05/20 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
会议主持词
2014/03/17 职场文书
小学假期安全广播稿
2014/09/28 职场文书
庆祝儿童节标语
2014/10/09 职场文书
Node.js实现断点续传
2021/06/23 Javascript