0
我使用此代码旋转我的图像并发送到天蓝色的存储。旋转90度改变图像大小和裁剪 - Swift 3
我的代码:
func imageRotatedByDegrees(oldImage: UIImage, deg degrees: CGFloat) -> UIImage {
//Calculate the size of the rotated view's containing box for our drawing space
let rotatedViewBox: UIView = UIView(frame: CGRect(x: 0, y: 0, width: oldImage.size.width, height: oldImage.size.height))
let t: CGAffineTransform = CGAffineTransform(rotationAngle: degrees * CGFloat.pi/180)
rotatedViewBox.transform = t
let rotatedSize: CGSize = rotatedViewBox.frame.size
//Create the bitmap context
UIGraphicsBeginImageContext(rotatedSize)
let bitmap: CGContext = UIGraphicsGetCurrentContext()!
//Move the origin to the middle of the image so we will rotate and scale around the center.
bitmap.translateBy(x: rotatedSize.width/2, y: rotatedSize.height/2)
//Rotate the image context
bitmap.rotate(by: (degrees * CGFloat.pi/180))
//Now, draw the rotated/scaled image into the context
bitmap.scaleBy(x: 1.0, y: -1.0)
bitmap.draw(oldImage.cgImage!, in: CGRect(x: -oldImage.size.width/2, y: -oldImage.size.height/2, width: oldImage.size.width, height: oldImage.size.height))
let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return newImage
}
但这个代码缩小我的形象和作物。 有人可以帮我解决这个问题吗?
角度可以是任何角度,或者你只是在寻找90度角度(90,180,270,-90,-180,-270,0)? –
@MaticOblak,只有90º。这基本上是因为当我拍摄照片时,它被水平发送,我想垂直 – HideCode
从UIImage获取cgImage并使用http://stackoverflow.com/questions/10544887/rotating-a-cgimage – Spads