मैं अपने आईओएस ऐप की पूरी स्क्रीन को धुंधला करना चाहता हूं, और मैं UIBlurEffect
का उपयोग नहीं कर सकता क्योंकि मैं धुंध को नियंत्रित करने में सक्षम होना चाहता हूं। तो मैं CIGaussianBlur
का उपयोग करने की कोशिश कर रहा हूं, लेकिन मुझे स्क्रीन के किनारों में परेशानी हो रही है।पूर्ण स्क्रीन पर गॉसियन ब्लर
मैं स्क्रीन के एक स्क्रीनशॉट ले रहा हूँ, और फिर एक CIFilter
के माध्यम से यह चल रहा है CIGaussianBlur
साथ, 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