私はiOSアプリケーションの画面全体をぼかしたいので、ぼやけをコントロールできるようにしたいのでUIBlurEffect
を使用できません。だからCIGaussianBlur
を使用しようとしていますが、画面の端に問題があります。フルスクリーンでガウスぼかし
私は、画面のスクリーンショットを取り、その後、CIGaussianBlur
でCIFilter
を通してそれを実行し、UIImage
にCIImage
背中を変換し、画面の一番上に新しいぼやけた画像を追加しています。
は、ここに私のコードです:ここで
let layer = UIApplication.sharedApplication().keyWindow?.layer
UIGraphicsBeginImageContext(view.frame.size)
layer!.renderInContext(UIGraphicsGetCurrentContext()!)
let screenshot = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let blurRadius = 5
var ciimage: CIImage = CIImage(image: screenshot)!
var filter: CIFilter = CIFilter(name:"CIGaussianBlur")!
filter.setDefaults()
filter.setValue(ciimage, forKey: kCIInputImageKey)
filter.setValue(blurRadius, forKey: kCIInputRadiusKey)
let ciContext = CIContext(options: nil)
let result = filter.valueForKey(kCIOutputImageKey) as! CIImage!
let cgImage = ciContext.createCGImage(result, fromRect: view.frame)
let finalImage = UIImage(CGImage: cgImage)
let blurImageView = UIImageView(frame: view.frame)
blurImageView.image = finalImage
blurImageView.sizeToFit()
blurImageView.contentMode = .ScaleAspectFit
blurImageView.center = view.center
view.addSubview(blurImageView)
は、私が見たものである。
それはエッジを除いて、ほぼ右に見えます。ぼやけがぼかし半径から縁に飛び散っているようです。私は文脈の大きさで遊んでみましたが、動作させるように見えませんでした。
は、どのように私はぼかしがすべての道の縁に行くことができますか?
あなたは、その答えのための何らかの種類の達成に値する。それは魅力のように働いた!ありがとうございました :) – Wiingaard