【问题标题】:Caricature in iOS [closed]iOS中的漫画[关闭]
【发布时间】:2013-05-22 07:42:03
【问题描述】:
【问题讨论】:
标签:
iphone
ios
objective-c
ios6
core-image
【解决方案1】:
我从未听说过漫画滤镜是 iOS 的一部分。这可能是一个定制设计。然而,有大量内置过滤器是 iOS 的一部分。运行这个小脚本以获得 iOS6 中所有 CoreImage 过滤器部分的完整列表:
NSArray *ciFilters = [CIFilter filterNamesInCategory:kCICategoryBuiltIn];
for (NSString *filter in ciFilters) {
NSLog(@"filter name %@", filter);
NSLog(@"filter %@", [[CIFilter filterWithName:filter] attributes]);
}
并记得将 CoreImage 添加到您的项目框架中。
编辑:试试这个功能作为边缘检测过滤器:
-(CIImage *)simpleEdgeDetection:(CIImage *)inputImage {
CIFilter *desaturate = [CIFilter filterWithName:@"CIColorControls"];
[desaturate setValue:inputImage forKey:kCIInputImageKey];
[desaturate setValue:@0.0f forKey:@"inputSaturation"];
CIFilter *blur = [CIFilter filterWithName:@"CIGaussianBlur"];
[blur setValue:desaturate.outputImage forKey:kCIInputImageKey];
[blur setValue:@3.0f forKey:@"inputRadius"];
CIFilter *inverted = [CIFilter filterWithName:@"CIColorInvert"];
[inverted setValue:blur.outputImage forKey:kCIInputImageKey];
CIFilter *blendDodge = [CIFilter filterWithName:@"CIColorDodgeBlendMode"];
[blendDodge setValue:inverted.outputImage forKey:kCIInputBackgroundImageKey];
[blendDodge setValue:desaturate.outputImage forKey:kCIInputImageKey];
CIFilter *blendBurn = [CIFilter filterWithName:@"CIColorDodgeBlendMode"];
[blendBurn setValue:blendDodge.outputImage forKey:kCIInputImageKey];
[blendBurn setValue:inputImage forKey:kCIInputBackgroundImageKey];
return blendBurn.outputImage;
}
来自 iOS6 教程 - www.raywenderlich.com