         let context: CIContext = CIContext(options: nil)
         let filter: CIFilter = CIFilter(name: "CICircleSplashDistortion")
         
-        filter.setValue(self.CIImage, forKey: kCIInputImageKey)
-        filter.setValue(center, forKey: "inputCenter")
-        filter.setValue(NSNumber(float: radius), forKey: "inputRadius")
-        
-        let returnImage: UIImage = UIImage(CIImage: filter.outputImage)!
+        var ciimage: BFCIImage = BFCIImage(image: self)
+        
+        filter.setValue(ciimage, forKey: kCIInputImageKey)
+        filter.setValue(center, forKey: kCIInputCenterKey)
+        filter.setValue(radius, forKey: kCIInputRadiusKey)
+        
+        let returnImage: UIImage = UIImage(CGImage: context.createCGImage(filter.outputImage, fromRect: filter.outputImage.extent()))!
         
         return returnImage
     }

        let context: CIContext = CIContext(options: nil)
        let filter: CIFilter = CIFilter(name: "CIBumpDistortion")
        
        filter.setValue(self.CIImage, forKey: kCIInputImageKey)
        filter.setValue(center, forKey: "inputCenter")
        filter.setValue(NSNumber(float: radius), forKey: "inputRadius")
        filter.setValue(NSNumber(float: scale), forKey: "inputScale")
        
        let returnImage: UIImage = UIImage(CIImage: filter.outputImage)!
        
        return returnImage
    }

        let context: CIContext = CIContext(options: nil)
        let filter: CIFilter = CIFilter(name: "CICircularWrap")
        
        var ciimage: BFCIImage = BFCIImage(image: self)
        
        filter.setValue(ciimage, forKey: kCIInputImageKey)
        filter.setValue(center, forKey: kCIInputCenterKey)
        filter.setValue(radius, forKey: kCIInputRadiusKey)
        filter.setValue(angle, forKey: kCIInputAngleKey)
        
        let returnImage: UIImage = UIImage(CGImage: context.createCGImage(filter.outputImage, fromRect: filter.outputImage.extent()))!
        
        return returnImage
    }
