方法
func viewToImg(v:UIView)->UIImage{ UIGraphicsBeginImageContext(v.bounds.size); v.layer.render(in: UIGraphicsGetCurrentContext()!); let img:UIImage = UIGraphicsGetImageFromCurrentImageContext()!; UIGraphicsEndImageContext(); return img; }
图片模糊问题
UIGraphicsBeginImageContext(v.bounds.size); 改成 //是否透明, 屏幕密度(UIScreen.main.scale) UIGraphicsBeginImageContextWithOptions(v.bounds.size, true, UIScreen.main.scale*0.9)
使用 .
let l = UIView(frame: CGRect(x: 60, y: 100, width: 100, height: 100)); l.backgroundColor = UIColor.blue; let t = UILabel(frame: CGRect(x: 20, y: 20, width: 50, height: 50)); t.backgroundColor = UIColor.gray; t.text = "F"; t.font = UIFont.systemFont(ofSize: 20); t.alpha = 0.5 l.addSubview(t) self.view.addSubview(l); /// let img = viewToImg(v: l); let dt:String = NSHomeDirectory().appending("/Documents/").appending("2.png") as String; print(dt); try? UIImagePNGRepresentation(img)?.write(to: URL(fileURLWithPath: dt))