005 画像のモザイク処理


Swift3.0に対応した新サイトオープンしました。

http://docs.fabo.io/swift/


Preview


Source

ViewController.swift

//

//  ViewController.swift

//  CoreImage005

//


import UIKit

import CoreImage


class ViewController: UIViewController {

    

    // ベース画像.

    let myInputImage = CIImage(image: UIImage(named: "ci005.jpg"))

    

    // ボタン.

    let myButton: UIButton = UIButton()

    

    // UIView

    var myImageView: UIImageView!

    

    override func viewDidLoad() {

        super.viewDidLoad()

        

        // UIImageに変換.

        let myInputUIImage: UIImage = UIImage(CIImage: myInputImage)!

        

        // ImageView.

        myImageView = UIImageView(frame: CGRectMake(0, 0, myInputUIImage.size.width, myInputUIImage.size.height))

        

        // UIImageViewの生成.

        myImageView.image = myInputUIImage

        self.view.addSubview(myImageView)

        

        // ボタン.

        myButton.frame = CGRectMake(0,0,80,80)

        myButton.backgroundColor = UIColor.blueColor();

        myButton.layer.masksToBounds = true

        myButton.setTitle("モザイク", forState: UIControlState.Normal)

        myButton.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)

        myButton.layer.cornerRadius = 40.0

        myButton.layer.position = CGPoint(x: self.view.frame.width/2, y:self.view.frame.height - 50)

        myButton.tag = 1

        myButton.addTarget(self, action: "onClickMyButton:", forControlEvents: .TouchUpInside)

        

        // 背景色を黒.

        self.view.backgroundColor = UIColor.blackColor()

        

        // UIボタンをViewに追加.

        self.view.addSubview(myButton);

    }

    

    // ボタンイベント.

    func onClickMyButton(sender: UIButton){

        

        // CIFilterを生成。nameにどんなを処理するのか記入.

        var myPixellateFilter = CIFilter(name: "CIPixellate")

        

        // ばかし処理をいれたい画像をセット.

        myPixellateFilter.setValue(myInputImage, forKey: kCIInputImageKey)

        

        // フィルターを通した画像をアウトプット.

        let myOutputImage : CIImage = myPixellateFilter.outputImage

        

        // UIImageに変換.

        let myOutputUIImage: UIImage = UIImage(CIImage: myOutputImage)!

        

        // 再びUIViewにセット.

        myImageView.image = myOutputUIImage

        

        // 再描画.

        myImageView.setNeedsDisplay()

        

    }

    

}




Reference

    CIPixellate

ą
Akira Sasaki,
2014/09/14 12:34
Comments