移动端上传图片iphone图片旋转以及服务端处理方法
判断是否需要旋转
/**
*iphone判断图片方向,是否需要旋转图片
*/
if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')&&in_array($ext, array('jpg','png','gif','jpeg','jepg'))){
$exif =exif_read_data($tmp);
switch ($exif['Orientation']){
case 6:
self::imgturn($tmp,1,$ext);
break;
case 3:
self::imgturn($tmp,1,$ext);
self::imgturn($tmp,1,$ext);
break;
case 8:
self::imgturn($tmp,2,$ext);
break;
}
}
一下是php旋转方法
function imgturn($src, $direction = 1,$ext) {
switch ($ext) {
case 'gif' :
$img = imagecreatefromgif ( $src );
break;
case 'jepg':
case 'jpg' :
case 'jpeg' :
$img = imagecreatefromjpeg ( $src );
break;
case 'png' :
$img = imagecreatefrompng ( $src );
break;
default :
die ( '图片格式错误!' );
break;
}
$width = imagesx ( $img );
$height = imagesy ( $img );
$img2 = imagecreatetruecolor ( $height, $width );
// 顺时针旋转90度
if ($direction == 1) {
for($x = 0; $x < $width; $x ++) {
for($y = 0; $y < $height; $y ++) {
imagecopy ( $img2, $img, $height - 1 - $y, $x, $x, $y, 1, 1 );
}
}
} else if ($direction == 2) {
// 逆时针旋转90度
for($x = 0; $x < $height; $x ++) {
for($y = 0; $y < $width; $y ++) {
imagecopy ( $img2, $img, $x, $y, $width - 1 - $y, $x, 1, 1 );
}
}
}
switch ($ext) {
case 'jepg':
case 'jpg' :
case "jpeg" :
imagejpeg ( $img2, $src, 100 );
break;
case "gif" :
imagegif ( $img2, $src, 100 );
break;
case "png" :
imagepng ( $img2, $src, 100 );
break;
default :
die ( '图片格式错误!' );
break;
}
imagedestroy ( $img );
imagedestroy ( $img2 );
}
移动端上传图片iphone图片旋转以及服务端处理方法的更多相关文章
- js无刷新上传图片,服务端有生成缩略图,剪切图片,iphone图片旋转判断功能
html: <form action="<{:AppLink('circle/uploadimg')}>" id="imageform" me ...
- 上传图片到七牛云(服务端 node.js sdk)
大体思路 前端要上传图片到七牛云,需要有一个token进行授权操作,而获取这个上传的upload token(以下简称upToken),在服务端需要一定的身份校验,比如说:只有登录的vip用户才能拿到 ...
- android-HttpClient上传信息(包括图片)到服务端
需要下载apache公司下的HttpComponents项目下的HTTPCLIENT ----------地址为http://hc.apache.org/downloads.cgi 主要是用到了htt ...
- 微信小程序开发之多图片上传+服务端接收
前言: 业务需求,这次需要做一个小程序同时选中三张图片一起上传到服务端,后端使用的.NET WEBAPI接收数据保存. 使用技术: 在这章中将会使用到微信小程序wx.uploadFile(Object ...
- IOS开发系列之阿堂教程:玩转IPhone客户端和Web服务端交互(客户端)实践
说到ios的应用开发,我们不能不提到web server服务端,如果没有服务端的支持,ios应用开发就没有多大意义了,因为从事过手机开发的朋友都知道(Android也一样),大量复杂业务的处理和数据库 ...
- TCP客户端图片上传服务端保存本地示例
//TCP客户端public class TCPClient { public static void main(String[] args)throws IOException { Socket s ...
- Java - PhantomJS + EChartsConvert实现ECharts图片保存到服务端
1.所需工具 1>phantomjs:官网下载http://phantomjs.org/download.html 国内镜像http://npm.taobao.org/dist/phantomj ...
- [转]微信小程序开发(二)图片上传+服务端接收
本文转自:http://blog.csdn.net/sk719887916/article/details/54312573 文/YXJ 地址:http://blog.csdn.net/sk71988 ...
- 微信小程序---图片上传+服务端接受
原文地址:http://blog.csdn.net/sk719887916/article/details/54312573 微信小程序,图片上传,应用地方-修改用户信息的头像. 详细代码: 小程序的 ...
随机推荐
- spring ioc三种注入方式
spring ioc三种注入方式 IOC ,全称 (Inverse Of Control) ,中文意思为:控制反转 什么是控制反转? 控制反转是一种将组件依赖关系的创建和管理置于程序外部的技术. 由容 ...
- Android--我的Butterknife黄油刀怎么找不到控件了!!!
1,首先说一下Butterknife这个插件真的挺好用的,不过最近几天在写demo的时候发现总是出现绑定的view是空的,当时着急写代码,也没有深究一下,直接手工findViewbyid了,今天下午写 ...
- paper 118:计算机视觉、模式识别、机器学习常用牛人主页链接
牛人主页(主页有很多论文代码) Serge Belongie at UC San Diego Antonio Torralba at MIT Alexei Ffros at CMU Ce Liu at ...
- Hash
创建(特殊的) Hash[] Hash[‘a’,1,’b’,2]->yes Hash[‘a’,1,’b’,’b’]->no Hash[[[‘a’,1],[‘b’,2]]]->yes ...
- 指令的Link函数和Scope
指令生成出的模板其实没有太多意义,除非它在特定的scope下编译.默认情况下,指令并不会创建新的子scope.更多的,它使用父scope.也就是说,如果指令存在于一个controller下,它就会使用 ...
- oracle事物
要想解释oracle事物的工作流程,首先先解释几个小概念: 1.undo段的组成:段头.回滚块 2.事物ID:每一个事物都有一个自己的事物ID,就像身份证号一样. 在v$tra ...
- oracle中scn(系统改变号)
系统scn: select checkpoint_change# from v$database; 文件scn: select name ...
- get([index])
get([index]) 概述 取得其中一个匹配的元素. num表示取得第几个匹配的元素.从0开始,返回的是DOM对象,类似的有eq(index),不过eq(index)返回的是jQuery对象. 这 ...
- uboot补丁的分析
接下来分析一下韦老师的uboot补丁: -------------------------------------------------------------------------------- ...
- 漫谈单点登录(SSO)(淘宝天猫)
1. 摘要 ( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!) SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开 ...