【Swift5】UIViewに描画されているものをUIImageにする。
UIViewに描画されているものをUIImageに変換する方法です。エクステンションで実装しています。返り値は透明色を含んだPNG形式で、UIViewの実サイズのものが生成されます。
extension UIView {
func snapshot() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, 0.0)
let context = UIGraphicsGetCurrentContext()!
context.setShouldAntialias(false)
layer.render(in: context)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
let png = image.pngData()!
let pngImage = UIImage.init(data: png)!
return pngImage
}
}