swift-image上传图片时需要旋转在上传服务器代码
2017-07-02 19:04
453 查看
// 图片旋转,有时服务器不处理图片,显示客户端时没有正常显示
func fixOrientation() ->
UIImage {
if
self.imageOrientation == .up {
return
self
}
var transform =
CGAffineTransform.identity
switch
self.imageOrientation {
case .down, .downMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
self.size.height)
transform = transform.rotated(by: .pi)
break
case .left, .leftMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
0)
transform = transform.rotated(by: .pi /
2)
break
case .right, .rightMirrored:
transform = transform.translatedBy(x:
0, y: self.size.height)
transform = transform.rotated(by: -.pi /
2)
break
default:
break
}
switch
self.imageOrientation {
case .upMirrored, .downMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
0)
transform = transform.scaledBy(x:
-1, y: 1)
break
case .leftMirrored, .rightMirrored:
transform = transform.translatedBy(x:
self.size.height, y:
0);
transform = transform.scaledBy(x:
-1, y: 1)
break
default:
break
}
let ctx =
CGContext(data: nil, width:
Int(self.size.width), height:
Int(self.size.height), bitsPerComponent:
self.cgImage!.bitsPerComponent, bytesPerRow:
0, space: self.cgImage!.colorSpace!,
bitmapInfo: self.cgImage!.bitmapInfo.rawValue)
ctx?.concatenate(transform)
switch
self.imageOrientation {
case .left, .leftMirrored, .right,
.rightMirrored:
ctx?.draw(self.cgImage!, in:
CGRect(x: CGFloat(0), y:
CGFloat(0), width:
CGFloat(size.height), height:
CGFloat(size.width)))
break
default:
ctx?.draw(self.cgImage!, in:
CGRect(x: CGFloat(0), y:
CGFloat(0), width:
CGFloat(size.width), height:
CGFloat(size.height)))
break
}
let cgimg:
CGImage = (ctx?.makeImage())!
let img =
UIImage(cgImage: cgimg)
return img
}
func fixOrientation() ->
UIImage {
if
self.imageOrientation == .up {
return
self
}
var transform =
CGAffineTransform.identity
switch
self.imageOrientation {
case .down, .downMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
self.size.height)
transform = transform.rotated(by: .pi)
break
case .left, .leftMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
0)
transform = transform.rotated(by: .pi /
2)
break
case .right, .rightMirrored:
transform = transform.translatedBy(x:
0, y: self.size.height)
transform = transform.rotated(by: -.pi /
2)
break
default:
break
}
switch
self.imageOrientation {
case .upMirrored, .downMirrored:
transform = transform.translatedBy(x:
self.size.width, y:
0)
transform = transform.scaledBy(x:
-1, y: 1)
break
case .leftMirrored, .rightMirrored:
transform = transform.translatedBy(x:
self.size.height, y:
0);
transform = transform.scaledBy(x:
-1, y: 1)
break
default:
break
}
let ctx =
CGContext(data: nil, width:
Int(self.size.width), height:
Int(self.size.height), bitsPerComponent:
self.cgImage!.bitsPerComponent, bytesPerRow:
0, space: self.cgImage!.colorSpace!,
bitmapInfo: self.cgImage!.bitmapInfo.rawValue)
ctx?.concatenate(transform)
switch
self.imageOrientation {
case .left, .leftMirrored, .right,
.rightMirrored:
ctx?.draw(self.cgImage!, in:
CGRect(x: CGFloat(0), y:
CGFloat(0), width:
CGFloat(size.height), height:
CGFloat(size.width)))
break
default:
ctx?.draw(self.cgImage!, in:
CGRect(x: CGFloat(0), y:
CGFloat(0), width:
CGFloat(size.width), height:
CGFloat(size.height)))
break
}
let cgimg:
CGImage = (ctx?.makeImage())!
let img =
UIImage(cgImage: cgimg)
return img
}
相关文章推荐
- php getimagesize 上传图片的长度和宽度检测代码
- 安卓 相机或相册图片上传至手机界面并显示 最后上传至服务器(界面xml布局代码前一个文章有)
- 使用SDWebImage的时候,从服务器请求回来的头像URL没有变化,但图片资源已经变。需要展示最新图片
- 摄像头(相册)获取的图片上传至服务器被自动旋转了
- iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了
- php getimagesize 上传图片的长度和宽度检测代码
- PHP 中 Orientation 属性判断上传图片是否需要旋转
- swift3.0图片保存到沙盒-从沙盒读取图片显示-从沙盒上传到服务器
- EasySwift/YXJImageCompressor 图片压缩,拍照上传压缩图片,比例压缩,data压缩,方便好用
- 服务器基于PHP CodeIgniter,Android基于Volley实现多文件/图片上传(含服务器,web版和android客户端完整代码)
- 从iPhone上传图片文件到服务器的代码
- iOS中(相册)摄像头获取的图片上传至服务器被自动旋转了
- 纯javascript代码实现浏览器图片选择预览、旋转、批量上传
- 解决图片上传到服务器旋转90度的问题(图片倒置)
- 上传图片到服务器中的代码(并把图片的名字用当前时间来代替)
- android上传图片到服务器,android的Activity和服务器那边的完整代码
- PHP使用CURL向服务器POST文本数据和上传图片的代码示例
- UIImage在拍照上传到服务器时,图片发生旋转解决方案
- Swift 头像上传(4)Alamofire上传图片到服务器
- swift 如何上传图片到django 的后台服务器