2014-02-22 6 views
5

Ich war CI Filter verwenden und seltsame Fehler bekommen, wie kann ich wissen, was ich in von der Suche bin fehlt- [UIImage _imageByUnpremultiplying]: Unbekannter Selektor gesendet Instanz

CIFilter *filter = [CIFilter filterWithName:@"CIFalseColor"];   
    [filter setValue:image forKey:@"inputImage"]; 
    CIColor *myBlue = [CIColor colorWithRed:0.0 green:0.0 blue:0.6 alpha:0.5]; 
    [filter setValue:myBlue forKey:@"inputColor0"]; 
    CIImage *filteredImageData = [filter valueForKey:@"outputImage"]; 
    UIImage *newImage = [UIImage imageWithCIImage:filteredImageData]; 
    _imageView.image=newImage; 



2014-02-22 16:04:12.002 colorMaker[1574:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImage _imageByUnpremultiplying]: unrecognized selector sent to instance 0x8b7aca0' 

libc++abi.dylib: terminating with uncaught exception of type NSException 
(lldb) 
+0

Sieht aus wie ein UIKit-Fehler möglicherweise. – Woodstock

Antwort

8

Diese Ausnahme, wenn das passieren würde einzuloggen Objekt, das Sie als "inputImage" setzen, ist ein UIImage. Gemäß der documentation muss das inputImage-Objekt ein CIImage sein.

Versuchen Sie zuerst, die CI-Fehlermeldung von Ihnen zu erhalten.

[filter setValue:image.CIImage forKey:@"inputImage"]; 
         ^^^^^^^ 
+0

Danke für den Vorschlag .. es funktioniert jetzt – DreamWatcher

0

Nach Matthias Hilfe endlich in der Lage, es zu lösen. Der korrekte Code ist ..

CIFilter *filter = [CIFilter filterWithName:@"CIFalseColor"];   
CIImage * beginImage = [CIImage imageWithCGImage:image.CGImage]; 
// set value must be of ciimage not uiimage 
[filter setValue:beginImage forKey:@"inputImage"]; 
CIColor *myBlue = [CIColor colorWithRed:0.0 green:0.0 blue:0.6 alpha:0.5]; 
[filter setValue:myBlue forKey:@"inputColor0"]; 
CIImage *filteredImageData = [filter valueForKey:@"outputImage"]; 
UIImage *newImage = [UIImage imageWithCIImage:filteredImageData]; 
_imageView.image=newImage; 
Verwandte Themen