Вопрос по cocoa-touch, iphone, core-image, uikit – Как я могу использовать CIFilter в iPhone OS?

6

Apple утверждает, что CIFilter доступен в iPhone OS. Однако на моем Mac я не смог найти инфраструктуру CoreImage, с которой можно было бы связываться.

filter An optional Core Image filter object that provides the transition.

@property(retain) CIFilter *filter

то есть, когда я пытаюсь сделать что-то подобное, происходит сбой, потому что CIFilter неизвестен:

[transition setFilter:[CIFilter filterWithName:@"CIShapedWaterRipple"]];

Я связался с:

#import <UIKit/UIKit.h>
#import <QuartzCore/QuartzCore.h>
#import <CoreGraphics/CoreGraphics.h>

Ваш Ответ

2   ответа
6

Ниже приведен пример того, как я генерирую отфильтрованный UIImage на iPhone с помощью CIFilter.

- (UIImage*)sepia
{    
    CIImage *beginImage = [CIImage imageWithCGImage:[self CGImage]];
    CIContext *context = [CIContext contextWithOptions:nil];

    CIFilter *filter = [CIFilter filterWithName:@"CISepiaTone" 
                                  keysAndValues: kCIInputImageKey, beginImage, 
                        @"inputIntensity", [NSNumber numberWithFloat:0.8], nil];
    CIImage *outputImage = [filter outputImage];

    CGImageRef cgimg = 
    [context createCGImage:outputImage fromRect:[outputImage extent]];
    UIImage *newImg = [UIImage imageWithCGImage:cgimg];

    self = newImg;

    CGImageRelease(cgimg);
    return self;
}
4

CIFilter доступен начиная с iOS 5

Похожие вопросы