2012-01-18 1 views
1

저는 iPad iPad와 iPhone의 경우 검은 색 그림을 검정색으로하고 싶습니다. &을 최대한 명확하게 흰색으로 표시하려고합니다.두 개의 CIFilter를 사용하려고하면 어떤 문제가 발생합니다.

1 - 나는 아이 패드 나 아이폰의 카메라로 내 사진을 촬영할 :

내가 그 많은 일을했다.

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

+0

사실이 아닙니다. 다음을 통해 사용 가능한 필터를 볼 수 있습니다. NSArray * properties = [CIFilter filterNamesInCategory : kCICategoryBuiltIn]; CIFilter * theFilter = [CIFilter filterWithName : filterName]에 대한 (속성의 NSString * filterName); NSString * filterName = [theFilter name]; NSLog (@ "% @", filterName); } – Keller

답변