extension UIView {
func capture() -> UIImage? {
var image: UIImage?
if #available(iOS 10.0, *) {
let format = UIGraphicsImageRendererFormat()
format.opaque = isOpaque
let renderer = UIGraphicsImageRenderer(size: frame.size, format: format)
image = renderer.image { context in
drawHierarchy(in: frame, afterScreenUpdates: true)
}
} else {
UIGraphicsBeginImageContextWithOptions(frame.size, isOpaque, UIScreen.main.scale)
drawHierarchy(in: frame, afterScreenUpdates: true)
image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
}
return image
}
}
Asked
Active
Viewed 293 times
1

AtulParmar
- 4,358
- 1
- 24
- 45

banto nan
- 11
- 4
-
you want to capture an image from avplayer or fullscreen screenshot with the player? – AtulParmar May 21 '19 at 11:54
-
I want to capture an image from view layer avplayer – banto nan May 23 '19 at 01:47
-
it's work for me ref... https://github.com/acotilla91/ACThumbnailGenerator-Swift – banto nan May 23 '19 at 08:46
-
wow, great.!!.. – AtulParmar May 23 '19 at 08:51
-
thank you , for support – banto nan May 23 '19 at 10:02
1 Answers
0
public extension AVAsset {
func takeScreenshot(at: Double,completion: @escaping (UIImage?) -> Void) {
DispatchQueue.global().async {
let imageGenerator = AVAssetImageGenerator(asset: self)
let time = CMTime(seconds: at, preferredTimescale: 600)
let times = [NSValue(time: time)]
imageGenerator.generateCGImagesAsynchronously(forTimes: times, completionHandler: { _, image, _, _, _ in
if let image = image {
completion(UIImage(cgImage: image))
} else {
completion(nil)
}
})
}
}
}

Paresh. P
- 486
- 5
- 18