没有找到UIView直接指定区域截图的方法,本文实现的方法是先把UIView整个截图出来,然后剪裁获取指定的区域
UIView截图
let scale:CGFloat = UIScreen.main.scale // 设置屏幕倍率可以保证截图的质量
UIGraphicsBeginImageContextWithOptions( self.frame.size, true, scale)
self.layer.render(in: UIGraphicsGetCurrentContext()!)
let image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
图片剪裁
// 假设要截取 Rect(100,100,100,100)的图片 各个值要 * 前面设置的scale 图片转为CGImage的时候会按这个比例放大 具体原因未知
let rect = CGRect.init(x: 100 * scale, y: 100 * scale, width: 100 * scale, height: 100 * scale)
let imageRef = image?.cgImage;
let subImageRef = imageRef!.cropping(to: rect);
return UIImage(cgImage: subImageRef!)
原文地址:https://blog.csdn.net/qq_23577319/article/details/96158901
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。