美文网首页动画iOS进阶指南iOS 开发
iOS开发 - CoreImage 小试牛刀

iOS开发 - CoreImage 小试牛刀

作者: 小黑Swift | 来源:发表于2016-09-07 17:21 被阅读228次
CoreImage 小试牛刀,这里只有🐟,没有什么渔
Simulator Screen Shot 2016年9月7日 下午5.18.19.png

CIImage+Ex.swift

import UIKit
// MARK: - 单色滤镜 - 一些事例
extension CIImage {
    
    enum PhotoEffect:String {
        case instant = "CIPhotoEffectInstant"
        case noir = "CIPhotoEffectNoir"
        case tonal = "CIPhotoEffectTonal"
        case transfer = "CIPhotoEffectTransfer"
        case mono = "CIPhotoEffectMono"
        case fade = "CIPhotoEffectFade"
        case process = "CIPhotoEffectProcess"
        case chrome =  "CIPhotoEffectChrome"
    }
    
    /*
     * 改变照片效果
     */
    func changed(photoEffect: PhotoEffect) -> CIImage {
       
        guard let filter = CIFilter(name: photoEffect.rawValue) else {
            fatalError()
        }
        filter.setValue(self, forKey: kCIInputImageKey)
        
        guard let outputImage = filter.outputImage else {
            fatalError()
        }
        return outputImage
    }
}

// MARK: - 修改色调
extension CIImage {
    func hueAdjust(value: Float) -> CIImage {
        
        //该属性类型:角度 最大值:Ԉ 最小值:-Ԉ
        var value = value
        value = value > Float(M_PI) ? Float(M_PI) : value
        value = value < Float(-M_PI) ? Float(-M_PI) : value

        guard let filter = CIFilter(name: "CIHueAdjust") else {
            fatalError()
        }

        filter.setValue(value, forKey: kCIInputAngleKey)
        filter.setValue(self, forKey: kCIInputImageKey)
        
        guard let outputImage = filter.outputImage else {
            fatalError()
        }
        return outputImage
    }
}

就不上传到github了,没啥内容

使用例子:

SB快速布局

ViewController.swift

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet var papaButtonCollection: [UIButton]! {
        didSet {
            papaButtonCollection.forEach {
                $0.layer.cornerRadius = 5
                $0.layer.borderWidth = 0.5
                $0.layer.borderColor = UIColor.grayColor().CGColor
            }
        }
    }
    @IBOutlet weak var imageView: UIImageView!
    
    lazy var originalImage: UIImage = {
        return UIImage(named: "beauty2")
    }()!
}

extension ViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()

    }

    //全部button连接这里
    @IBAction func papaButtonClick(sender: UIButton) {
        
        let btnText = sender.titleLabel?.text
        var inputImage = CIImage(image: originalImage)!
        switch btnText! {
            case "怀旧":
                inputImage = inputImage.changed(.instant)
            case "黑白":
                inputImage =  inputImage.changed(.noir)
            case "灰白":
                inputImage = inputImage.changed(.tonal)
            case "岁月":
                inputImage = inputImage.changed(.transfer)
            case "单色":
                inputImage = inputImage.changed(.mono)
            case "褪色":
                inputImage = inputImage.changed(.fade)
            case "冲印":
                inputImage = inputImage.changed(.process)
            case "铬黄":
                inputImage = inputImage.changed(.chrome)
            default:
                break
            }
        imageView.image = UIImage(CIImage: inputImage)
    }

    @IBAction func sliderClick(sender: UISlider) {
        
        let inputImage = CIImage(image: originalImage)!
        let currImg = inputImage.hueAdjust(sender.value)
        imageView.image = UIImage(CIImage: currImg)
    }
}

参考(渔):iOS8 Core Image In Swift

相关文章

  • iOS开发 - CoreImage 小试牛刀

    CoreImage 小试牛刀,这里只有?,没有什么渔 CIImage+Ex.swift 就不上传到github了,...

  • iOS开发 - CoreImage 头像检测

    CoreImage 头像检测 Detection.swift 参考来源:iOS8 Core Image In Swift

  • CoreImage(一)简单介绍

    CoreImage(一)简单介绍 CoreImage框架是iOS处理图像的框架,主要用处可以给图片添加滤镜效果和图...

  • iOS模糊效果

    iOS 7 以前 使用 CoreImage 使用 GPUImage 使用 vImage iOS 8 及以后 使用U...

  • iOS开发 - CoreImage 初出茅庐

    组合滤镜 熟悉下函数式编程思想 下面BFilter里面代码参考自functional-swift一书 BFilte...

  • GPUImage与CoreImage

    GPUImage 与 CoreImage 对比 GPUImage 最低支持iOS4.0,iOS5.0之后就支持自定...

  • CoreImage 滤镜

    1、CoreImage介绍 coreImage是IOS5中新加入的一个Objective-c的框架,提供了强大高效...

  • CoreImage使用

    CoreImage是苹果公司为了简化图片处理的难度而开发出来的类库。 随着iOS版本升级以及硬件性能的不断提升,C...

  • iOS效果---模糊效果汇总

    第一部分CoreImage效果 CoreImage是iOS5中新加入的Objective-C的框架,提供了强大高效...

  • iOS开发之CoreImage框架使用(上)

    CoreImage框架是一个专门用来对图片进行处理的框架,其中提供了许多高级功能,可以帮助开发者完成UIKit或者...

网友评论

    本文标题:iOS开发 - CoreImage 小试牛刀

    本文链接:https://www.haomeiwen.com/subject/qhvjettx.html