Использование базовых фильтров изображений для изображений - PullRequest
1 голос
/ 22 декабря 2011

Я использовал базовую структуру изображений для добавления фильтров изображений в моем проекте. Первые пять фильтров, которые я добавил, работают правильно. Но когда я применяю другие фильтры. Изображение отключается. Фильтры, которые работают: 1) CIHueAdjust 2) CIGammaAdjust 3) CIExposureAdjust 4) CIColorMonochrome 5) CISepiaTone Другие фильтры, которые не работали для меня, это CIGloom, CILineOverlay и другие. Вот мой код. Пожалуйста, помогите мне, если я ошибаюсь .....

CIImage *inputImage = [[CIImage alloc] initWithImage:[UIImage imageNamed:@"leaves2.png"]];
CIFilter *Gloom = [CIFilter filterWithName:@"CIGloom"];
[Gloom setDefaults];
[Gloom setValue: inputImage forKey:@"inputImage"];
[Gloom setValue:[NSNumber numberWithFloat: 10.00]
                  forKey:@"inputRadius"];[Gloom setValue:[NSNumber numberWithFloat: 0.8f]
         forKey:@"inputIntensity"];
CIImage *outputImage = [Gloom valueForKey:@"outputImage"];
// define context
CIContext *context = [CIContext contextWithOptions:nil];
// set image to UIImageView
imageView.image = [UIImage imageWithCGImage:
                   [context createCGImage:outputImage
                                 fromRect:outputImage.extent]];

Когда я нажимаю кнопку. Изображение исчезает.

1 Ответ

2 голосов
/ 28 января 2012

iOS 5 не включает в себя все фильтры Core Image, которые есть в Mac OS X ... CIGloom и CILineOverlay предназначены только для Mac.

Вы можете получить массив всех доступных имен фильтров в iOS 5, вызвав это:

NSArray *filterNamesArray = [CIFilter filterNamesInCategories:[NSArray arrayWithObject:kCICategoryBuiltIn]];
...