曾经在一个截图的时候用了下面的这个方法,但是这个中间的 UIGraphicsBeginImageContextWithOptions 方法的最后一个参数我设的是 0 会导致 let image = UIGraphicsGetImageFromCurrentImageContext() 在 iPhone6 的时候 生成的 是一个 2x 的大小 在 iPhone6P 的时候生成的是一个 3x 的大小 如果要截图正确 下面的 rect 的参数都要 x2 和 x3
所以这个坑真的好大 所以 这个参数 设置 1 就好
func cutImage(){
UIGraphicsBeginImageContextWithOptions(self.content.frame.size, true, 1)
let ctx = UIGraphicsGetCurrentContext()
self.content.layer.renderInContext(ctx!)
let image = UIGraphicsGetImageFromCurrentImageContext()
//print(image.size)
let rect = CGRect(x: (self.view.frame.size.width - 280) / 2, y: (95 + 64) , width: 280, height: 280)
//print(rect)
let imageRef = CGImageCreateWithImageInRect(image.CGImage, rect)
SaveAllLocalInfo().uploadAvatarImg(UIImage(CGImage: imageRef!))
back()
}
网友评论