저는 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];
진심
CIColorMonochrome은 Mac OS X v10.4 이상에서 사용할 수 있습니다. iOS에는 없습니다 https://developer.apple.com/library/mac/#documentation/graphicsimaging/reference/CoreImageFilterReference/Reference/reference.html – Bala
사실이 아닙니다. 다음을 통해 사용 가능한 필터를 볼 수 있습니다. NSArray * properties = [CIFilter filterNamesInCategory : kCICategoryBuiltIn]; CIFilter * theFilter = [CIFilter filterWithName : filterName]에 대한 (속성의 NSString * filterName); NSString * filterName = [theFilter name]; NSLog (@ "% @", filterName); } – Keller