2016-07-15 11 views
2

これは、フィルタのための私のコードです:iOSの画像にCIPhotoEffectMonoフィルタを適用するには?

がキャッチされない例外が原因アプリ 'NSUnknownKeyException' を終了、理由:「[setValueの:forUndefinedKey:]:このクラスここ

let filter = CIFilter(name: "CIPhotoEffectMono") 
filter!.setValue(CIImage(image: imageView.image!) , forKey: kCIInputImageKey) 
filter!.setValue(0.3, forKey: kCIInputIntensityKey) 
let context = CIContext(options:nil) 
let cgimg = context.createCGImage(filter!.outputImage!, fromRect: filter!.outputImage!.extent) 
let newImage = UIImage(CGImage:cgimg) 
self.imageView.image = newImage 

はエラーメッセージですキーinputIntensityに対してキー値コーディングに準拠していません。 '

まずスローコールスタック: (

0 CoreFoundationの0x0000000105f9af65 __exceptionPreprocess + 165

1 libobjc.A。dylib 0x0000000107f56deb objc_exception_throw + 48

2 CoreFoundationのを0x0000000105f9aba9 - [NSExceptionを上げる] + 9

3 CoreImageの0x0000000106354f7a - [CIFilterのsetValue:forUndefinedKey:] + 137

4ファンデーション0x000000010668af5b - [NSObjectの(NSKeyValueCoding)のsetValue :forKey:] + 288

5 MyFirstApp 0x0000000105a26bac _TFC10MyFirstApp14ViewController13lightBlendBtnfS0_FPSs9AnyObject_T_ + 988

6 MyFirスタップ0x0000000105a27076 _TToFC10MyFirstApp14ViewController13lightBlendBtnfS0_FPSs9AnyObject_T_ + 54

7のUIKit 0x0000000106ae01fa - [のUIApplication sendAction:に:から:forEvent:] + 92

8のUIKit 0x0000000106c44504 - [するuicontrol sendAction:全forEvent:] + 67

9 UIKitの0x0000000106c447d0 - [するuicontrol _sendActionsForEvents:withEvent:] + 311

10のUIKit 0x0000000106c43906 - [するuicontrol touchesEnded:withEvent:] + 601

11のUIKit 0x0000000106b4aaa3 - [UIWindow _sendTouchesForEvent:] + 835

12のUIKit 0x0000000106b4b691 - [UIWindowのSendEvent:] + 865

13のUIKit 0x0000000106afd752 - [のUIApplicationのSendEvent:] + 263

14のUIKit 0x00000001140f4a55 - [UIApplicationAccessibilityのSendEvent:] + 77

15のUIKit 0x0000000106ad8fcc _UIApplicationHandleEventQueue + 6693

16 CoreFoundationの0x0000000 105ec70a1 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17

17 CoreFoundationの0x0000000105ebcfcc __CFRunLoopDoSources0 + 556

18 CoreFoundationの0x0000000105ebc483 __CFRunLoopRun + 867

19 CoreFoundationの0x0000000105ebbe98 CFRunLoopRunSpecific + 488

20 GraphicsServices 0x000000010cdccad2 GSEventRunModal + 161

21 UIKit 0x0000000106ade676 UIApplicationMain + 171

22 MyFirstApp 109

23 +メインlibdyld.dylibが

のlibC++ ABI)+ 1

を開始0x0000000108a8292d 0x0000000105a29fed。dylib:タイプNSException (lldb)のキャッチされない例外で終了

答えて

2

CIPhotoEffectMonokCIInputIntensityKeyをサポートしていません。実際、フォトエフェクトフィルタのいずれも、入力画像とは別の入力を有していない。 filter!.setValue(0.3, forKey: kCIInputIntensityKey)を削除すると、コードが正常に動作するはずです。

フィルタのサポートされている入力を確認するには、filter.inputKeysですべての入力の名前を含む文字列の配列を返します。

シモン

関連する問題