iOS uygulamasının tüm ekranını bulanıklaştırmak istiyorum ve UIBlurEffect
kullanamıyorum çünkü bulanıklığı kontrol edebilmek istiyorum. Yani CIGaussianBlur
kullanmayı deniyorum, ancak ekranın kenarlarında sorun yaşıyorum.Gaussian tam ekranda bulanıklık
Ben ekranın bir ekran görüntüsü alma ve ardından UIImage
geri CIImage
dönüştürerek, CIGaussianBlur
ile CIFilter
akıtarak ve ekranın üst kısmındaki yeni bulanık görüntüyü ekliyorum. İşte
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)
gördüklerimi geçerli::
İşte benim kod
Neredeyse sağ kenarları hariç görünüyor. Bulanıklık, bulanıklık yarıçapından kenara doğru gidiyor gibi görünüyor. Bağlam boyutuyla oynamayı denedim, ancak çalışmasını sağlayamadım.
Bulanıklığı kenarlara kadar nasıl açabilirim?
Siz efendim, bu cevap için bir çeşit başarıyı hakedin .. Bir çekicilik gibi çalıştı! Teşekkür ederim :) – Wiingaard