1
我正在關注Core Image部分的iOS 9開發手冊。將濾鏡應用於UIImage時遇到了一個問題。CreateWrappedSurface()失敗了一個dataprovider支持的CGImageRef
下面的代碼是從書上採取:
resultHandler: { (image: UIImage?, info: [NSObject : AnyObject]?) -> Void in
if let image = image, var ciImage = CIImage(image: image) where SLComposeViewController.isAvailableForServiceType(SLServiceTypeTwitter) {
ciImage = ciImage.imageByApplyingFilter("CIPixellate", withInputParameters: ["inputScale" : 10.0])
let ciContext = CIContext(options: nil)
let cgImage = ciContext.createCGImage(ciImage, fromRect: ciImage.extent)
let tweetImage = UIImage(CGImage: cgImage)
let tweetVC = SLComposeViewController(forServiceType:SLServiceTypeTwitter)
tweetVC.setInitialText("Here's a photo I tweeted. #pragsios9")
tweetVC.addImage(tweetImage)
dispatch_async(dispatch_get_main_queue(), {() -> Void in
self.presentViewController(tweetVC, animated: true, completion: nil) })
}
})
的代碼建立和運行,但是當我打的resultHandler,以下日誌打印出來:
CreateWrappedSurface() failed for a dataprovider-backed CGImageRef.
和圖像不像素化。
按照這本書的步驟,在這一點上,只需複製並粘貼該代碼。
更新
跟蹤下來了一點,似乎CIImage(image: image)
失敗。我正在使用來自模擬器的示例圖像中的第一幅圖像。
我設法得到一個不同的圖像,它實際上獲得像素化,但仍然得到該日誌消息。