【问题标题】:How can I use CIFilter in iOS?如何在 iOS 中使用 CIFilter?
【发布时间】:2010-11-12 23:34:33
【问题描述】:

Apple 表示 CIFilter 在 iOS 中可用。但是,在我的 Mac 上,我找不到要链接的 CoreImage 框架。

filter 一个可选的核心图像过滤器 提供过渡的对象。

@property(retain) CIFilter *filter

即当我尝试做这样的事情时,它会因为 CIFilter 未知而崩溃:

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

我链接到:

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

【问题讨论】:

    标签: ios cocoa-touch uikit core-image


    【解决方案1】:

    以下是我如何在 iPhone 上使用 CIFilter 生成过滤后的 UIImage 的示例。

    - (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;
    }
    

    【讨论】:

      【解决方案2】:

      CIFilter 从 iOS 5 开始可用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-03
        • 2019-08-06
        • 2013-03-22
        • 1970-01-01
        • 2014-01-04
        • 2020-07-05
        • 2012-01-21
        相关资源
        最近更新 更多