2014-10-23 2 views
1

과 벽지 암호 흐림과 같은 효과를 얻을블러를 UIImage 내가 암호보기있는 효과를 달성 할 신속한

이 날 검은 화면

func blurWithCoreImage(){ 

    var inputImage = CIImage(image: UIImage(named: "wallpaper")); 

    // Apply gaussian blur filter with radius of 30 
    var gaussianBlurFilter = CIFilter(name: "CIGaussianBlur"); 
    gaussianBlurFilter.setValue(inputImage, forKey: "inputImage") 
    gaussianBlurFilter.setValue(30, forKey: "inputRadius") 

    var context = CIContext(options:nil) 
    var cgImage = context.createCGImage(gaussianBlurFilter.outputImage, fromRect: inputImage.extent()) 

    // Set up output context. 
    UIGraphicsBeginImageContext(self.view.frame.size); 
    var outputContext = UIGraphicsGetCurrentContext(); 

    // Invert image coordinates 
    CGContextScaleCTM(outputContext, 1.0, -1.0); 
    CGContextTranslateCTM(outputContext, 0, -self.view.frame.size.height); 

    // Draw base image. 
    CGContextDrawImage(outputContext, self.view.frame, cgImage); 

    // Apply white tint 
    CGContextSaveGState(outputContext); 
    // CGContextSetFillColorWithColor(outputContext, UIColor.blackColor().CGColor!); 

    CGContextFillRect(outputContext, self.view.frame); 
    CGContextRestoreGState(outputContext); 

    // Output image is ready. 
    var outputImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    backgroundImg.image = outputImage; 
} 
줄 (벽지 화상을 흐리게하고 어두운)

이 기능은 이미지를 흐리게하지만, allso가 축소 이미지를 확인하고 iOS 만 8을 지원하기 위해 필요에 따라 암호보기

func blurWithCoreImage2(){ 
    var ciimage = CIImage(image: UIImage(named: "passcode")) 

    var filter = CIFilter(name:"CIGaussianBlur") 

    filter.setDefaults() 

    filter.setValue(ciimage, forKey: kCIInputImageKey) 

    filter.setValue(1, forKey: kCIInputRadiusKey) 

    var outputImage = filter.outputImage; 

    var finalImage = UIImage(CIImage: outputImage); 
    backgroundImg.image = finalImage; 
    UIGraphicsEndImageContext(); 

} 
+0

무엇 아이폰 OS의 버전을 지원해야합니까 : 여기에 최신 구문입니까? – JoeFryer

+0

8.0 이상 ... – Ben

+0

좋아, 답변을 추가했습니다. – JoeFryer

답변

13

에 효과에서 너무 멀리하고 사용할 수있는 위 새롭게 추가 된 UIVisualEffectView은 흐림을 추가하는 새로운 방법입니다. 그것은 아주 사용하기 쉽습니다

, 다음과 같은 :

let blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Dark) 
let blurView = UIVisualEffectView(effect: blurEffect) 
blurView.frame = myFrame 
self.view.addSubview(blurView) 

당신은 당신은뿐만 아니라 그것을 어둡게 만들 수있게 해주는 UIBlurEffectStyle을에서 지정할 수 있음을 알 수있다.

+0

UIImage로 이것을 구현할 수있는 방법 – Ben

+0

'UIImageView'상단에이 UIBlurEffectView 중 하나를 간단히 추가 할 수 있습니다. 이미지 뷰는 흐림보기를 통해 흐리게 표시됩니다. – JoeFryer

+0

그래, 좋아 보인다. – Ben

3

하면이 내가 대답을 업데이트 시도했지만이 무의미 거부

func applyBlurEffect(image: UIImage){ 
var imageToBlur = CIImage(image: image) 
var blurfilter = CIFilter(name: "CIGaussianBlur") 
blurfilter.setValue(5, forKey: kCIInputRadiusKey) 
blurfilter.setValue(imageToBlur, forKey: "inputImage") 
var resultImage = blurfilter.valueForKey("outputImage") as! CIImage 
var blurredImage = UIImage(CIImage: resultImage) 
var cropped:CIImage=resultImage.imageByCroppingToRect(CGRectMake(0, 0,imageToBlur.extent().size.width, imageToBlur.extent().size.height)) 
blurredImage = UIImage(CIImage: cropped) 
self.backgroundImage.image = blurredImage 
} 
0

흐리게 작물 이미지 봅니다.

스위프트 3.1

let blurEffect = UIBlurEffect(style: .dark) 
let blurView = UIVisualEffectView(effect: blurEffect) 
self.view.addSubview(blurView)