Карикатура в iOS

Я пытаюсь применить эффект карикатуры к фотографиям в iOS. Я гуглил так много вещей, но нашел для этого самые вещи. Я проверил https://github.com/BradLarson/GPUImage чтобы получить эскиз изображения, чтобы я мог применять различные фильтры к эскизу. Но все еще застрял в этом. Я также видел эту ссылку, создающую эффект Sketch для фотографий, используя Brad Larson GPUImage в Obj C, но не смог получить правильную комбинацию для него. Пожалуйста, помогите мне, если вы нашли что-то подобное.

Заранее спасибо.

1 ответ

Я никогда не слышал, чтобы карикатурный фильтр был частью iOS. Это, вероятно, будет индивидуальный дизайн. Однако есть множество встроенных фильтров, которые являются частью iOS. Запустите этот небольшой сценарий, чтобы получить полный список всех фильтров CoreImage в iOS6:

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

Другие вопросы по тегам