//	Convert any SwiftUI View to UIImage
import SwiftUI
struct ContentView: View {
		let imageSize: CGSize = CGSize(width: 1000, height: 1000)
		var body: some View {
				testView
						.frame(width: 300, height: 300)
						.onTapGesture {
								// Capture high res image of swiftUI view
								let highresImage = testView.asImage(size: imageSize)
								// Now you can do what ever with the highresImage
						}
		}
		var testView: some View {
				ZStack {
						Color.blue
						Circle()
								.fill(Color.red)
				}
		}
}
extension UIView {
		func asImage() -> UIImage {
				let format = UIGraphicsImageRendererFormat()
				format.scale = 1
				return UIGraphicsImageRenderer(size: self.layer.frame.size, format: format).image { context in
						self.drawHierarchy(in: self.layer.bounds, afterScreenUpdates: true)
				}
		}
}
extension View {
		func asImage(size: CGSize) -> UIImage {
				let controller = UIHostingController(rootView: self)
				controller.view.bounds = CGRect(origin: .zero, size: size)
				let image = controller.view.asImage()
				return image
		}
}