1
我想有一个图片黑色&白色尽可能最清晰,为iPad和iPhone的应用程序。一些问题,当我尝试使用两个CIFilter
我做了很多事情:
1 - 我把我与iPad的或iPhone的摄像头画面。
2 - 我应用我的第一个过滤器== CIColorMonochrome ==和我显示,以确保如果这项工作。 我的第一个过滤器很好。
3 - 我恢复我的最后一个过滤器的结果,我用它来应用我的新过滤器== CINoiseReduction ==,我显示它确定如果这项工作呢!但是这次它什么也没有显示,所以我不知道为什么。
//CIColorMonochrome
CIFilter * monochromeFilter;
monochromeFilter = [CIFilter filterWithName:@"CIColorMonochrome"];
[monochromeFilter setValue:beginImage forKey:@"inputImage"];
//Red Green Blue Alpha
[monochromeFilter setValue:[CIColor colorWithString:@"255 255 255 1.0"] forKey:@"inputColor"];
[monochromeFilter setValue:[NSNumber numberWithFloat:1] forKey:@"inputIntensity"];
CIImage* monochromeImage = [monochromeFilter valueForKey:@"outputImage"];
CIImage* outputImage = monochromeImage;
//---===---
CIFilter* noiseReductionFilter = [CIFilter filterWithName:@"CINoiseReduction"];
//[noiseReductionFilter setDefaults];
[noiseReductionFilter setValue:outputImage forKey:@"inputImage"];
[noiseReductionFilter setValue:[NSNumber numberWithFloat:0.2] forKey:@"inputNoiseLevel"];
[noiseReductionFilter setValue:[NSNumber numberWithFloat:0.40] forKey:@"inputSharpness"];
[noiseReductionFilter retain];
CIImage* noiseReductionImage = [noiseReductionFilter valueForKey:@"outputImage"];
// ---===---
outputImage = noiseReductionImage;
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[beginImage extent]];
UIImage* newImg = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
[imageView removeFromSuperview];
CGRect imageFrame = [imageView frame];
[imageView release];
// [self noiseReduction:newImg];
imageView = [[UIImageView alloc]initWithImage:newImg];
NSLog(@"%@ ===---=== " ,[self noiseReduction:newImg]);
if (flag == 0)
[imageView setFrame:imageFrame]; NSLog(@"setFrame image");
NSLog(@"%@ ==== ", imageView);
[[self view]addSubview:imageView];
亲切
CIColorMonochrome在Mac OS X v10.4及更高版本中可用。不在iOS中 https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html – Bala 2012-03-08 13:49:22
不正确。你可以看到可用的过滤器:NSArray * properties = [CIFilter filterNamesInCategory:kCICategoryBuiltIn]; for(NSString * filterName in properties){ CIFilter * theFilter = [CIFilter filterWithName:filterName]; NSString * filterName = [theFilter name]; NSLog(@“%@”,filterName); } – Keller 2013-01-02 22:30:14