为什么屏幕截图图像会拉伸?
Why screenshot image stretched?
我正在使用 UIGraphicsBeginImageContextWithOptions
和自定义 CGSize
我不知道为什么我的图像会被拉伸?
UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 200)
view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()
您正在将图像上下文设置为 200 的高度,然后您对单元格矩形执行相同的操作,这意味着它将截取整个屏幕截图并将其放入 (screenWidth, 200) 框架中。您需要保留 200 的上下文,然后仅对 cellRect 使用 view.bounds
,如果您需要的话,您应该获得视图的顶部 200 px
。
UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = self.view.bounds
self.view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()
我正在使用 UIGraphicsBeginImageContextWithOptions
和自定义 CGSize
我不知道为什么我的图像会被拉伸?
UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: 200)
view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()
您正在将图像上下文设置为 200 的高度,然后您对单元格矩形执行相同的操作,这意味着它将截取整个屏幕截图并将其放入 (screenWidth, 200) 框架中。您需要保留 200 的上下文,然后仅对 cellRect 使用 view.bounds
,如果您需要的话,您应该获得视图的顶部 200 px
。
UIGraphicsBeginImageContextWithOptions(CGSize(width: UIScreen.main.bounds.width, height: 200) , false, 0)
let cellRect = self.view.bounds
self.view.drawHierarchy(in: cellRect, afterScreenUpdates: true)
let wholeImage = UIGraphicsGetImageFromCurrentImageContext()//stretched image
UIGraphicsEndImageContext()