swift – generateCGImagesAsynchronouslyForTimes有时不会生成
发布时间:2020-12-14 05:21:47 所属栏目:百科 来源:网络整理
导读:我正在使用一个使用AVAsset ImageGenerator.generateCGImagesAsynchronouslyForTimes的OS X应用程序,它通常工作正常.然而,一段时间后,我回来的缩略图只包含前几行像素,其余的是绿色,有时图像将是不同的绿色.很难跟踪,因为它不会一直发生,但是当大约一半的缩
我正在使用一个使用AVAsset
ImageGenerator.generateCGImagesAsynchronouslyForTimes的OS X应用程序,它通常工作正常.然而,一段时间后,我回来的缩略图只包含前几行像素,其余的是绿色,有时图像将是不同的绿色.很难跟踪,因为它不会一直发生,但是当大约一半的缩略图受到影响时.这是我期望看到的形象:
但经常发生这种情况: 以下是我用来生成缩略图的代码: let assetGenerator = AVAssetImageGenerator(asset: AVURLAsset(URL: url)) assetGenerator.appliesPreferredTrackTransform = true let time = CMTime(seconds: 0,preferredTimescale: 30) let handler: AVAssetImageGeneratorCompletionHandler = { _,image,_,res,error in defer { dispatch_group_leave(self.waitForThumbnail!) } guard let image = image where res == .Succeeded else { if let error = error { print(error) } return } let s = CGSize(width: CGImageGetWidth(image),height: CGImageGetHeight(image)) self.thumbnail = NSImage(CGImage: image,size: s) } waitForThumbnail = dispatch_group_create() dispatch_group_enter(waitForThumbnail!) assetGenerator.maximumSize = maxThumbnailSize assetGenerator.generateCGImagesAsynchronouslyForTimes([NSValue(CMTime: time)],completionHandler: handler) 这就是我如何检索缩略图: dispatch_group_wait(file.waitForThumbnail!,DISPATCH_TIME_FOREVER) dispatch_async(dispatch_get_main_queue()) { self.imageView.image = file.thumbnail } 非常感谢任何帮助,谢谢!
而不是使用generateCGImagesAsynchronouslyForTimes方法,您可以使用copyCGImageAtTime方法从资产中获取图像,并保存该图像.这是代码.
let assetGenerator = AVAssetImageGenerator(asset: AVURLAsset(URL: url)) assetGenerator.appliesPreferredTrackTransform = true assetGenerator.maximumSize = maxThumbnailSize let time = CMTime(seconds: 0,preferredTimescale: 30) do { let cgImage = try assetGenerator.copyCGImageAtTime(time,actualTime: nil) let s = CGSize(width: CGImageGetWidth(cgImage),height: CGImageGetHeight(cgImage)) self.thumbnail = NSImage(CGImage: cgImage,size: s) } catch let error { print(error) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ios – XCode 4.x中的代码自动完成/语法高亮问题
- egrep 扩展正规则表达式 (笔记)
- Swift等效于Java indexOf和字符串的lastIndexOf
- fastjson 处理json字符串嵌套结构
- 生成cocos2dx 2.2.6 TestCpp例子 android工程遇到的问题(3)
- c – 如何从LLVM中的LoadInst结果的值中解析AllocaInst?
- iphone – 更新过期的配置文件时出现问题
- ruby – 如何通过ARGV打印我正在使用的文件的行号?
- 将String转换为xml元素java
- ruby-on-rails – Heroku – 为我的项目托管文件和静态文件