首先,我想到了解决方案,但这不是一个好方法.我会在最后给出.
当我处理过滤器时iOS9
我得到"需要一个swizzler以便RGB8可以被读取"错误信息并且返回图像是全黑的这种方法
[self.context createCGImage:self.outputImage fromRect:[self.outputImage extent]];
在这里
- (UIImage *)fliterImage:(UIImage *)input flitername:(NSString *)name
{
NSString * fliter_name = name;
self.context = [CIContext contextWithOptions:nil];
UIImage *image;
if ([fliter_name isEqualToString:@"OriginImage"]){
image = input;
}else {
self.ciImage = [[CIImage alloc] initWithImage:input];
self.filter = [CIFilter filterWithName:fliter_name keysAndValues:kCIInputImageKey,self.ciImage, nil];
[self.filter setDefaults];
self.outputImage = [self.filter outputImage];
// here give the error message
self.cgimage = [self.context createCGImage:self.outputImage fromRect:[self.outputImage extent]];
UIImage *image1 = [UIImage imageWithCGImage:self.cgimage];
CGImageRelease(self.cgimage);
self.context = [CIContext contextWithOptions:nil];
//
// self.filter=[CIFilter filterWithName:@"CIColorControls"];
// _imageView.image=image; …
Run Code Online (Sandbox Code Playgroud)