init(imageURL:options:)
Creates a filter that allows the processing of RAW images.
Declaration
init!(imageURL url: URL!, options: [CIRAWFilterOption : Any]! = [:])Parameters
- url:
The location of a RAW image file.
- options:
An options dictionary. You can pass any of the keys defined in Raw Image Options.
Return Value
A CIFilter object.
Discussion
The first step when working with RAW images in Core Image is to process the image using either init(imageData:options:) or init(imageURL:options:). These initializers create a CIFilter object with an outputImage which is a CIImage representation of the supplied RAW image.
The newly created filter object allows you fine control over the image processing that isn’t available when working with processed images such a JPEG. The following listing shows how to create a Core Image filter based on a URL named imageURL. The image is processed so that its neutral temperature is set to 2,000 Kelvin (giving a blue tint) and its baseline exposure doubled. Finally, a Core Image vignette filter is applied to the processed image in the same way it would be with any other source image:
let rawFilter = CIFilter(imageURL: imageURL, options: nil)
rawFilter?.setValue(2000,
forKey: kCIInputNeutralTemperatureKey)
if let baselineExposure = rawFilter?.value(forKey: kCIInputBaselineExposureKey) as? NSNumber {
rawFilter?.setValue(baselineExposure.doubleValue * 2.5, forKey: kCIInputBaselineExposureKey)
}
let vignettedImage = rawFilter?.outputImage?.applyingFilter(
"CIVignette",
withInputParameters: [kCIInputIntensityKey: 5])
if let outputImage = vignettedImage {
imageView.image = UIImage(ciImage: outputImage)
}