小编Mar*_*el 的帖子

iOS CIFilters实际上有效吗?

我目前正在尝试使用由不同CIF过滤器过滤的图片填充集合视图.我用apple方法获得了一系列过滤器.

let filterNames = CIFilter.filterNamesInCategories([kCICategoryStillImage,kCICategoryBuiltIn])
Run Code Online (Sandbox Code Playgroud)

我认为这应该给我所有适用于iPhone上静止图像的过滤器.但它有点不起作用.

这是我从上面的方法得到的(一些)过滤器:

["CIAccordionFoldTransition", "CIAdditionCompositing", "CIAffineClamp", "CIAffineTile", "CIAffineTransform", "CIAreaAverage", "CIAreaHistogram", "CIAreaMaximum", "CIAreaMaximumAlpha", "CIAreaMinimum", "CIAreaMinimumAlpha", "CIAztecCodeGenerator", "CIBarsSwipeTransition", "CIBlendWithAlphaMask", "CIBlendWithMask", "CIBloom", "CIBoxBlur", "CIBumpDistortion", "CIBumpDistortionLinear", "CICheckerboardGenerator", "CICircleSplashDistortion", "CICircularScreen", "CICircularWrap", "CICMYKHalftone", 
Run Code Online (Sandbox Code Playgroud)

还有很多.

我用这种方法应用过滤器:

func applyFilter(image: UIImage, filterName: String) -> UIImage {

    let beginImage = CIImage(CGImage: image.CGImage!)

    let filter = CIFilter(name: filterName)!

    filter.setValue(beginImage, forKey: kCIInputImageKey)

    filter.setDefaults()

    let context = CIContext(options: nil)
    let imageRef = context.createCGImage(filter.outputImage!, fromRect: beginImage.extent)

    let newImage = UIImage(CGImage: imageRef)
    return newImage
}
Run Code Online (Sandbox Code Playgroud)

前两个过滤器不起作用,因为生成的图像是零,然后一些工作,然后我得到:

[<CIAztecCodeGenerator 0x7fb89c775460> setValue:forUndefinedKey:]: this     class …
Run Code Online (Sandbox Code Playgroud)

iphone filter ios cifilter swift

2
推荐指数
1
解决办法
704
查看次数

标签 统计

cifilter ×1

filter ×1

ios ×1

iphone ×1

swift ×1