2016-10-09 8 views
0

Размещенный вопрос от this thread. Я не уверен, как передать результат от CIAffineClamp в качестве источника для CIGaussianBlur. Следующий код строит просто отлично, но не дает результирующего изображения.MacOS и Swift 3 - как передать результат от одного фильтра к другому

guard 
    let blurFilter = CIFilter(name: "CIGaussianBlur"), 
    let clampFilter = CIFilter(name: "CIAffineClamp"), 
    let imageURL = Bundle.main.url(forResource: "my-image", withExtension: "png"), 
    let ciImage = CIImage(contentsOf: imageURL) 
else { 
    return 
} 

let transform = AffineTransform.identity 

clampFilter.setValue(ciImage, forKey: "inputImage") 
clampFilter.setValue(NSAffineTransform(transform: transform), forKey: "inputTransform") 

blurFilter.setValue(clampFilter.outputImage, forKey: kCIInputImageKey) 
blurFilter.setValue(10, forKey: kCIInputRadiusKey) 

guard 
    let result = blurFilter.outputImage, 
    let cgImage = context.createCGImage(result, from: result.extent) 
else { 
    // this guard fails in here 
    return 
} 

ответ

1

Кажется, та же проблема с этим:

CIGaussianBlur and CIAffineClamp on iOS 6

Пожалуйста, попробуйте следующее:

let cgImage = context.createCGImage(result, from: ciImage.extent) 
+0

Работал как шарм. Большое спасибо за Вашу помощь. Не возражаете ли вы поделиться своими контактными данными (email/gplus/skype), чтобы я мог рассказать вам несколько вещей об этом коде? – Pono

+0

Извините, но я не делаю никаких личных контактов через общедоступные сайты. Я постараюсь решить ваши будущие вопросы, или вы поможете мне в будущем. Удачи вам и вашему приложению. – OOPer