Wednesday, October 10, 2018

Swift 3.0

Take a screenshot of current screen and make it blur.

//
// Helper.swift
// Blur
//
// Created by Narender Kumar on 09/10/18.
// Copyright © 2018 Appster. All rights reserved.
//

import Foundation
import UIKit


extension UIApplication {
var screenShot: UIImage? {
if let layer = keyWindow?.layer {
let scale = UIScreen.main.scale
UIGraphicsBeginImageContextWithOptions(layer.frame.size, false, scale);
if let context = UIGraphicsGetCurrentContext() {
layer.render(in: context)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return screenshot
}
}
return nil
}
}



func blurEffect(_ img: UIImage)-> UIImage {
let context = CIContext(options: nil)
let currentFilter = CIFilter(name: "CIGaussianBlur")
let beginImage = CIImage(image: img)
currentFilter!.setValue(beginImage, forKey: kCIInputImageKey)
currentFilter!.setValue(10, forKey: kCIInputRadiusKey)
let cropFilter = CIFilter(name: "CICrop")
cropFilter!.setValue(currentFilter!.outputImage, forKey: kCIInputImageKey)
cropFilter!.setValue(CIVector(cgRect: beginImage!.extent), forKey: "inputRectangle")
let output = cropFilter!.outputImage
let cgimg = context.createCGImage(output!, from: output!.extent)
let processedImage = UIImage(cgImage: cgimg!)
return processedImage
}















No comments:

Post a Comment