Hey guys I am trying to call applyProcessing()on ViewController class using this method:
@IBAction func intensityChanged(sender: AnyObject) {
FilteredMainImageOne.applyProcessing()
}
and suddenly I got an error message "Missing argument for parameter #1 in call"
This is my FilteredMainImageOne class:
class FilteredMainImageOne {
var originalImage: UIImage!
var filteredImage: UIImage?
var imageQueue: NSOperationQueue?
var gpuContext: CIContext
var filter: CIFilter!
var filterNAme: String
var homeViewController: ViewController
weak var delegate: ViewController?
init(name: String, original: UIImage, queue: NSOperationQueue, context: CIContext, homeVC: ViewController) {
self.filterNAme = name
self.originalImage = original
self.imageQueue = queue
self.gpuContext = context
self.homeViewController = homeVC
}
func applyProcessing() {
println("finish picking")
var imageFilter = CIFilter(name: self.filterNAme)
let inputKeys = imageFilter.inputKeys() as! [NSString]
if contains(inputKeys, kCIInputIntensityKey) { filter.setValue(delegate!.intensity.value, forKey: kCIInputIntensityKey) }
if contains(inputKeys, kCIInputRadiusKey) { filter.setValue(delegate!.intensity.value * 200, forKey: kCIInputRadiusKey) }
if contains(inputKeys, kCIInputScaleKey) { filter.setValue(delegate!.intensity.value * 10, forKey: kCIInputScaleKey) }
if contains(inputKeys, kCIInputCenterKey) { filter.setValue(CIVector(x: originalImage.size.width / 2, y: originalImage.size.height / 2), forKey: kCIInputCenterKey) }
let cgimg = gpuContext.createCGImage(filter.outputImage, fromRect: filter.outputImage.extent())
let processedImage = UIImage(CGImage: cgimg)
delegate!.imageView.image = processedImage
}
func generateImage (completionHandler: (image: UIImage) -> Void) {
self.imageQueue?.addOperationWithBlock({ () -> Void in
var image = CIImage(image: self.originalImage)
if self.originalImage.imageOrientation == UIImageOrientation.Right {
image = image.imageByApplyingOrientation(6)
}
var imageFilter = CIFilter(name: self.filterNAme)
imageFilter.setDefaults()
imageFilter.setValue(image, forKey: kCIInputImageKey)
var result = imageFilter.valueForKey(kCIOutputImageKey) as! CIImage
var extent = result.extent()
var imageRef = self.gpuContext.createCGImage(result, fromRect: extent)
self.filter = imageFilter
self.filteredImage = UIImage(CGImage: imageRef)
UIGraphicsBeginImageContext(self.homeViewController.imageView.image!.size)
self.filteredImage!.drawInRect(CGRect(origin: self.homeViewController.imageView.bounds.origin, size: self.homeViewController.imageView.image!.size))
var largeImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
NSOperationQueue.mainQueue().addOperationWithBlock({ () -> Void in
completionHandler(image: self.filteredImage!)
})
})
}
}
What is wrong with my code?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire