截图的坑

曾经在一个截图的时候用了下面的这个方法,但是这个中间的 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()
        
  }

你可能感兴趣的:(截图的坑)