2012-01-18 64 views
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]; 

亲切

+0

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

+0

不正确。你可以看到可用的过滤器: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

回答

相关问题