Documentation Archive Developer
Search

CoreImage Changes for Swift

CoreImage

Removed CIColor.alpha() -> CGFloat
Removed CIColor.blue() -> CGFloat
Removed CIColor.colorSpace() -> Unmanaged<CGColorSpace>!
Removed CIColor.components() -> UnsafePointer<CGFloat>
Removed CIColor.green() -> CGFloat
Removed CIColor.init(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) -> CIColor
Removed CIColor.numberOfComponents() -> Int
Removed CIColor.red() -> CGFloat
Removed CIColor.stringRepresentation() -> String!
Removed CIFilter.attributes() -> [NSObject : AnyObject]!
Removed CIFilter.init(name: String!, elements: (NSCopying, AnyObject))
Removed CIFilter.inputKeys() -> [AnyObject]!
Removed CIFilter.name() -> String!
Removed CIFilter.outputKeys() -> [AnyObject]!
Removed CIImage.extent() -> CGRect
Removed CIImage.properties() -> [NSObject : AnyObject]!
Removed CIKernel.name() -> String!
Removed CIVector.CGAffineTransformValue() -> CGAffineTransform
Removed CIVector.CGPointValue() -> CGPoint
Removed CIVector.CGRectValue() -> CGRect
Removed CIVector.count() -> Int
Removed CIVector.stringRepresentation() -> String!
Removed CIVector.W() -> CGFloat
Removed CIVector.X() -> CGFloat
Removed CIVector.Y() -> CGFloat
Removed CIVector.Z() -> CGFloat
Added CISampler
Added UNIFIED_CORE_IMAGE
Modified CIColor
DeclarationProtocolsIntroduction
From
class CIColor : NSObject, NSCoding, NSCopying {
    init!(CGColor c: CGColor!) -> CIColor
    class func colorWithCGColor(_ c: CGColor!) -> CIColor!
    init!(red r: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat) -> CIColor
    class func colorWithRed(_ r: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat) -> CIColor!
    init!(red r: CGFloat, green g: CGFloat, blue b: CGFloat) -> CIColor
    class func colorWithRed(_ r: CGFloat, green g: CGFloat, blue b: CGFloat) -> CIColor!
    init!(string representation: String!) -> CIColor
    class func colorWithString(_ representation: String!) -> CIColor!
    init!(CGColor c: CGColor!)
    func numberOfComponents() -> Int
    func components() -> UnsafePointer<CGFloat>
    func alpha() -> CGFloat
    func colorSpace() -> Unmanaged<CGColorSpace>!
    func red() -> CGFloat
    func green() -> CGFloat
    func blue() -> CGFloat
    func stringRepresentation() -> String!
}
extension CIColor {
    init?(color color: UIColor)
}
AnyObject, NSCoding, NSCopyingiOS 8.0
To
class CIColor : NSObject, NSSecureCoding, NSCoding, NSCopying {
    convenience init(CGColor c: CGColor)
    class func colorWithCGColor(_ c: CGColor) -> Self
    convenience init(red r: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat)
    class func colorWithRed(_ r: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat) -> Self
    convenience init(red r: CGFloat, green g: CGFloat, blue b: CGFloat)
    class func colorWithRed(_ r: CGFloat, green g: CGFloat, blue b: CGFloat) -> Self
    convenience init(string representation: String)
    class func colorWithString(_ representation: String) -> Self
    init(CGColor c: CGColor)
    convenience init(red r: CGFloat, green g: CGFloat, blue b: CGFloat, alpha a: CGFloat)
    var numberOfComponents: Int { get }
    var components: UnsafePointer<CGFloat> { get }
    var alpha: CGFloat { get }
    var colorSpace: CGColorSpace { get }
    var red: CGFloat { get }
    var green: CGFloat { get }
    var blue: CGFloat { get }
    var stringRepresentation: String { get }
}
extension CIColor {
    convenience init(color color: UIColor)
}
AnyObject, NSCoding, NSCopying, NSSecureCodingiOS 5.0

Declaration
From
init!(CGColor c: CGColor!)
To
init(CGColor c: CGColor)

Declaration
From
init!(red r: CGFloat, green g: CGFloat, blue b: CGFloat) -> CIColor
To
convenience init(red r: CGFloat, green g: CGFloat, blue b: CGFloat)

Declaration
From
init!(string representation: String!) -> CIColor
To
convenience init(string representation: String)

Modified CIColorKernel
Declaration
From
class CIColorKernel : CIKernel {
    func applyWithExtent(_ extent: CGRect, arguments args: [AnyObject]!) -> CIImage!
}
To
class CIColorKernel : CIKernel {
    convenience init?(string string: String)
    class func kernelWithString(_ string: String) -> Self?
    func applyWithExtent(_ extent: CGRect, arguments args: [AnyObject]?) -> CIImage?
}

Declaration
From
func applyWithExtent(_ extent: CGRect, arguments args: [AnyObject]!) -> CIImage!
To
func applyWithExtent(_ extent: CGRect, arguments args: [AnyObject]?) -> CIImage?

Modified CIContext
DeclarationIntroduction
From
class CIContext : NSObject {
    init!(CGContext ctx: CGContext!, options dict: [NSObject : AnyObject]!) -> CIContext
    class func contextWithCGContext(_ ctx: CGContext!, options dict: [NSObject : AnyObject]!) -> CIContext!
    init!(options dict: [NSObject : AnyObject]!) -> CIContext
    class func contextWithOptions(_ dict: [NSObject : AnyObject]!) -> CIContext!
    init!(EAGLContext eaglContext: EAGLContext!) -> CIContext
    class func contextWithEAGLContext(_ eaglContext: EAGLContext!) -> CIContext!
    init!(EAGLContext eaglContext: EAGLContext!, options dict: [NSObject : AnyObject]!) -> CIContext
    class func contextWithEAGLContext(_ eaglContext: EAGLContext!, options dict: [NSObject : AnyObject]!) -> CIContext!
    func drawImage(_ im: CIImage!, atPoint p: CGPoint, fromRect src: CGRect)
    func drawImage(_ im: CIImage!, inRect dest: CGRect, fromRect src: CGRect)
    func createCGImage(_ im: CIImage!, fromRect r: CGRect) -> CGImage!
    func createCGImage(_ im: CIImage!, fromRect r: CGRect, format f: CIFormat, colorSpace cs: CGColorSpace!) -> CGImage!
    func createCGLayerWithSize(_ size: CGSize, info d: CFDictionary!) -> Unmanaged<CGLayer>!
    func render(_ im: CIImage!, toBitmap data: UnsafeMutablePointer<Void>, rowBytes rb: Int, bounds r: CGRect, format f: CIFormat, colorSpace cs: CGColorSpace!)
    func render(_ image: CIImage!, toCVPixelBuffer buffer: CVPixelBuffer!)
    func render(_ image: CIImage!, toCVPixelBuffer buffer: CVPixelBuffer!, bounds r: CGRect, colorSpace cs: CGColorSpace!)
    func reclaimResources()
    func clearCaches()
    func inputImageMaximumSize() -> CGSize
    func outputImageMaximumSize() -> CGSize
}
iOS 8.0
To
class CIContext : NSObject {
     init(CGContext cgctx: CGContext, options options: [String : AnyObject]?)
    class func contextWithCGContext(_ cgctx: CGContext, options options: [String : AnyObject]?) -> CIContext
     init(options options: [String : AnyObject]?)
    class func contextWithOptions(_ options: [String : AnyObject]?) -> CIContext
     init(EAGLContext eaglContext: EAGLContext)
    class func contextWithEAGLContext(_ eaglContext: EAGLContext) -> CIContext
     init(EAGLContext eaglContext: EAGLContext, options options: [String : AnyObject]?)
    class func contextWithEAGLContext(_ eaglContext: EAGLContext, options options: [String : AnyObject]?) -> CIContext
     init(MTLDevice device: MTLDevice)
    class func contextWithMTLDevice(_ device: MTLDevice) -> CIContext
     init(MTLDevice device: MTLDevice, options options: [String : AnyObject]?)
    class func contextWithMTLDevice(_ device: MTLDevice, options options: [String : AnyObject]?) -> CIContext
    var workingColorSpace: CGColorSpace { get }
    func drawImage(_ image: CIImage, atPoint atPoint: CGPoint, fromRect fromRect: CGRect)
    func drawImage(_ image: CIImage, inRect inRect: CGRect, fromRect fromRect: CGRect)
    func createCGImage(_ image: CIImage, fromRect fromRect: CGRect) -> CGImage
    func createCGImage(_ image: CIImage, fromRect fromRect: CGRect, format format: CIFormat, colorSpace colorSpace: CGColorSpace?) -> CGImage
    func createCGLayerWithSize(_ size: CGSize, info info: CFDictionary?) -> CGLayer
    func render(_ image: CIImage, toBitmap data: UnsafeMutablePointer<Void>, rowBytes rowBytes: Int, bounds bounds: CGRect, format format: CIFormat, colorSpace colorSpace: CGColorSpace?)
    func render(_ image: CIImage, toCVPixelBuffer buffer: CVPixelBuffer)
    func render(_ image: CIImage, toCVPixelBuffer buffer: CVPixelBuffer, bounds bounds: CGRect, colorSpace colorSpace: CGColorSpace?)
    func render(_ image: CIImage, toMTLTexture texture: MTLTexture, commandBuffer commandBuffer: MTLCommandBuffer?, bounds bounds: CGRect, colorSpace colorSpace: CGColorSpace)
    func reclaimResources()
    func clearCaches()
    func inputImageMaximumSize() -> CGSize
    func outputImageMaximumSize() -> CGSize
}
extension CIContext {
    class func offlineGPUCount() -> UInt32
}
iOS 5.0

Declaration
From
func createCGImage(_ im: CIImage!, fromRect r: CGRect) -> CGImage!
To
func createCGImage(_ image: CIImage, fromRect fromRect: CGRect) -> CGImage

Declaration
From
func createCGImage(_ im: CIImage!, fromRect r: CGRect, format f: CIFormat, colorSpace cs: CGColorSpace!) -> CGImage!
To
func createCGImage(_ image: CIImage, fromRect fromRect: CGRect, format format: CIFormat, colorSpace colorSpace: CGColorSpace?) -> CGImage

Declaration
From
func drawImage(_ im: CIImage!, inRect dest: CGRect, fromRect src: CGRect)
To
func drawImage(_ image: CIImage, inRect inRect: CGRect, fromRect fromRect: CGRect)

Declaration
From
init!(EAGLContext eaglContext: EAGLContext!) -> CIContext
To
init(EAGLContext eaglContext: EAGLContext)

Declaration
From
init!(EAGLContext eaglContext: EAGLContext!, options dict: [NSObject : AnyObject]!) -> CIContext
To
init(EAGLContext eaglContext: EAGLContext, options options: [String : AnyObject]?)

Declaration
From
init!(options dict: [NSObject : AnyObject]!) -> CIContext
To
init(options options: [String : AnyObject]?)

Declaration
From
func render(_ im: CIImage!, toBitmap data: UnsafeMutablePointer<Void>, rowBytes rb: Int, bounds r: CGRect, format f: CIFormat, colorSpace cs: CGColorSpace!)
To
func render(_ image: CIImage, toBitmap data: UnsafeMutablePointer<Void>, rowBytes rowBytes: Int, bounds bounds: CGRect, format format: CIFormat, colorSpace colorSpace: CGColorSpace?)

Declaration
From
func render(_ image: CIImage!, toCVPixelBuffer buffer: CVPixelBuffer!)
To
func render(_ image: CIImage, toCVPixelBuffer buffer: CVPixelBuffer)

Declaration
From
func render(_ image: CIImage!, toCVPixelBuffer buffer: CVPixelBuffer!, bounds r: CGRect, colorSpace cs: CGColorSpace!)
To
func render(_ image: CIImage, toCVPixelBuffer buffer: CVPixelBuffer, bounds bounds: CGRect, colorSpace colorSpace: CGColorSpace?)

Modified CIDetector
DeclarationIntroduction
From
class CIDetector : NSObject {
    init!(ofType type: String!, context context: CIContext!, options options: [NSObject : AnyObject]!) -> CIDetector
    class func detectorOfType(_ type: String!, context context: CIContext!, options options: [NSObject : AnyObject]!) -> CIDetector!
    func featuresInImage(_ image: CIImage!) -> [AnyObject]!
    func featuresInImage(_ image: CIImage!, options options: [NSObject : AnyObject]!) -> [AnyObject]!
}
iOS 8.0
To
class CIDetector : NSObject {
     init(ofType type: String, context context: CIContext?, options options: [String : AnyObject]?)
    class func detectorOfType(_ type: String, context context: CIContext?, options options: [String : AnyObject]?) -> CIDetector
    func featuresInImage(_ image: CIImage) -> [CIFeature]
    func featuresInImage(_ image: CIImage, options options: [String : AnyObject]?) -> [CIFeature]
}
iOS 5.0

Declaration
From
func featuresInImage(_ image: CIImage!) -> [AnyObject]!
To
func featuresInImage(_ image: CIImage) -> [CIFeature]

Declaration
From
func featuresInImage(_ image: CIImage!, options options: [NSObject : AnyObject]!) -> [AnyObject]!
To
func featuresInImage(_ image: CIImage, options options: [String : AnyObject]?) -> [CIFeature]

Declaration
From
init!(ofType type: String!, context context: CIContext!, options options: [NSObject : AnyObject]!) -> CIDetector
To
init(ofType type: String, context context: CIContext?, options options: [String : AnyObject]?)

Modified CIFaceFeature
Introduction
FromiOS 8.0
ToiOS 5.0

Modified CIFeature
DeclarationIntroduction
From
class CIFeature : NSObject {
    var type: String! { get }
    var bounds: CGRect { get }
}
iOS 8.0
To
class CIFeature : NSObject {
    var type: String { get }
    var bounds: CGRect { get }
}
iOS 5.0

Declaration
From
var type: String! { get }
To
var type: String { get }

Modified CIFilter
DeclarationProtocolsIntroduction
From
class CIFilter : NSObject, NSCoding, NSCopying {
    var outputImage: CIImage! { get }
    func name() -> String!
    func inputKeys() -> [AnyObject]!
    func outputKeys() -> [AnyObject]!
    func setDefaults()
    func attributes() -> [NSObject : AnyObject]!
    func apply(_ k: CIKernel!, arguments args: [AnyObject]!, options dict: [NSObject : AnyObject]!) -> CIImage!
}
extension CIFilter {
    convenience init(name name: String!, elements elements: (NSCopying, AnyObject)...)
}
extension CIFilter {
    init!(name name: String!) -> CIFilter
    class func filterWithName(_ name: String!) -> CIFilter!
    init!(name name: String!, withInputParameters params: [NSObject : AnyObject]!) -> CIFilter
    class func filterWithName(_ name: String!, withInputParameters params: [NSObject : AnyObject]!) -> CIFilter!
    class func filterNamesInCategory(_ category: String!) -> [AnyObject]!
    class func filterNamesInCategories(_ categories: [AnyObject]!) -> [AnyObject]!
    class func localizedNameForFilterName(_ filterName: String!) -> String!
    class func localizedNameForCategory(_ category: String!) -> String!
    class func localizedDescriptionForFilterName(_ filterName: String!) -> String!
    class func localizedReferenceDocumentationForFilterName(_ filterName: String!) -> NSURL!
}
extension CIFilter {
    class func serializedXMPFromFilters(_ filters: [AnyObject]!, inputImageExtent extent: CGRect) -> NSData!
    class func filterArrayFromSerializedXMP(_ xmpData: NSData!, inputImageExtent extent: CGRect, error outError: NSErrorPointer) -> [AnyObject]!
}
extension CIFilter {
    convenience init(name name: String!, elements elements: (NSCopying, AnyObject)...)
}
AnyObject, NSCoding, NSCopyingiOS 8.0
To
class CIFilter : NSObject, NSSecureCoding, NSCoding, NSCopying {
    var outputImage: CIImage? { get }
    var name: String { get }
    var inputKeys: [String] { get }
    var outputKeys: [String] { get }
    func setDefaults()
    var attributes: [String : AnyObject] { get }
    func apply(_ k: CIKernel, arguments args: [AnyObject]?, options dict: [String : AnyObject]?) -> CIImage?
}
extension CIFilter {
     init?(name name: String)
    class func filterWithName(_ name: String) -> CIFilter?
     init?(name name: String, withInputParameters params: [String : AnyObject]?)
    class func filterWithName(_ name: String, withInputParameters params: [String : AnyObject]?) -> CIFilter?
    class func filterNamesInCategory(_ category: String?) -> [String]
    class func filterNamesInCategories(_ categories: [String]?) -> [String]
    class func registerFilterName(_ name: String, constructor anObject: CIFilterConstructor, classAttributes attributes: [String : AnyObject])
    class func localizedNameForFilterName(_ filterName: String) -> String?
    class func localizedNameForCategory(_ category: String) -> String
    class func localizedDescriptionForFilterName(_ filterName: String) -> String?
    class func localizedReferenceDocumentationForFilterName(_ filterName: String) -> NSURL?
}
extension CIFilter {
    class func serializedXMPFromFilters(_ filters: [CIFilter], inputImageExtent extent: CGRect) -> NSData
    class func filterArrayFromSerializedXMP(_ xmpData: NSData, inputImageExtent extent: CGRect, error outError: NSErrorPointer) -> [CIFilter]
}
AnyObject, NSCoding, NSCopying, NSSecureCodingiOS 5.0

Declaration
From
class func filterArrayFromSerializedXMP(_ xmpData: NSData!, inputImageExtent extent: CGRect, error outError: NSErrorPointer) -> [AnyObject]!
To
class func filterArrayFromSerializedXMP(_ xmpData: NSData, inputImageExtent extent: CGRect, error outError: NSErrorPointer) -> [CIFilter]

Declaration
From
class func filterNamesInCategories(_ categories: [AnyObject]!) -> [AnyObject]!
To
class func filterNamesInCategories(_ categories: [String]?) -> [String]

Declaration
From
class func filterNamesInCategory(_ category: String!) -> [AnyObject]!
To
class func filterNamesInCategory(_ category: String?) -> [String]

Declaration
From
init!(name name: String!) -> CIFilter
To
init?(name name: String)

Declaration
From
init!(name name: String!, withInputParameters params: [NSObject : AnyObject]!) -> CIFilter
To
init?(name name: String, withInputParameters params: [String : AnyObject]?)

DeclarationIntroduction
From
var outputImage: CIImage! { get }
iOS 8.0
To
var outputImage: CIImage? { get }
iOS 5.0

Declaration
From
class func serializedXMPFromFilters(_ filters: [AnyObject]!, inputImageExtent extent: CGRect) -> NSData!
To
class func serializedXMPFromFilters(_ filters: [CIFilter], inputImageExtent extent: CGRect) -> NSData

Modified CIImage
DeclarationProtocolsIntroduction
From
class CIImage : NSObject, NSCoding, NSCopying {
    init!(CGImage image: CGImage!) -> CIImage
    class func imageWithCGImage(_ image: CGImage!) -> CIImage!
    init!(CGImage image: CGImage!, options d: [NSObject : AnyObject]!) -> CIImage
    class func imageWithCGImage(_ image: CGImage!, options d: [NSObject : AnyObject]!) -> CIImage!
    init!(CGLayer layer: CGLayer!) -> CIImage
    class func imageWithCGLayer(_ layer: CGLayer!) -> CIImage!
    init!(CGLayer layer: CGLayer!, options d: [NSObject : AnyObject]!) -> CIImage
    class func imageWithCGLayer(_ layer: CGLayer!, options d: [NSObject : AnyObject]!) -> CIImage!
    init!(bitmapData d: NSData!, bytesPerRow bpr: Int, size size: CGSize, format f: CIFormat, colorSpace cs: CGColorSpace!) -> CIImage
    class func imageWithBitmapData(_ d: NSData!, bytesPerRow bpr: Int, size size: CGSize, format f: CIFormat, colorSpace cs: CGColorSpace!) -> CIImage!
    init!(texture name: UInt32, size size: CGSize, flipped flag: Bool, colorSpace cs: CGColorSpace!) -> CIImage
    class func imageWithTexture(_ name: UInt32, size size: CGSize, flipped flag: Bool, colorSpace cs: CGColorSpace!) -> CIImage!
    init!(contentsOfURL url: NSURL!) -> CIImage
    class func imageWithContentsOfURL(_ url: NSURL!) -> CIImage!
    init!(contentsOfURL url: NSURL!, options d: [NSObject : AnyObject]!) -> CIImage
    class func imageWithContentsOfURL(_ url: NSURL!, options d: [NSObject : AnyObject]!) -> CIImage!
    init!(data data: NSData!) -> CIImage
    class func imageWithData(_ data: NSData!) -> CIImage!
    init!(data data: NSData!, options d: [NSObject : AnyObject]!) -> CIImage
    class func imageWithData(_ data: NSData!, options d: [NSObject : AnyObject]!) -> CIImage!
    init!(CVImageBuffer imageBuffer: CVImageBuffer!) -> CIImage
    class func imageWithCVImageBuffer(_ imageBuffer: CVImageBuffer!) -> CIImage!
    init!(CVImageBuffer imageBuffer: CVImageBuffer!, options dict: [NSObject : AnyObject]!) -> CIImage
    class func imageWithCVImageBuffer(_ imageBuffer: CVImageBuffer!, options dict: [NSObject : AnyObject]!) -> CIImage!
    init!(CVPixelBuffer buffer: CVPixelBuffer!) -> CIImage
    class func imageWithCVPixelBuffer(_ buffer: CVPixelBuffer!) -> CIImage!
    init!(CVPixelBuffer buffer: CVPixelBuffer!, options dict: [NSObject : AnyObject]!) -> CIImage
    class func imageWithCVPixelBuffer(_ buffer: CVPixelBuffer!, options dict: [NSObject : AnyObject]!) -> CIImage!
    init!(color color: CIColor!) -> CIImage
    class func imageWithColor(_ color: CIColor!) -> CIImage!
    class func emptyImage() -> CIImage!
    init!(CGImage image: CGImage!)
    init!(CGImage image: CGImage!, options d: [NSObject : AnyObject]!)
    init!(CGLayer layer: CGLayer!)
    init!(CGLayer layer: CGLayer!, options d: [NSObject : AnyObject]!)
    init!(data data: NSData!)
    init!(data data: NSData!, options d: [NSObject : AnyObject]!)
    init!(bitmapData d: NSData!, bytesPerRow bpr: Int, size size: CGSize, format f: CIFormat, colorSpace c: CGColorSpace!)
    init!(texture name: UInt32, size size: CGSize, flipped flag: Bool, colorSpace cs: CGColorSpace!)
    init!(contentsOfURL url: NSURL!)
    init!(contentsOfURL url: NSURL!, options d: [NSObject : AnyObject]!)
    init!(CVImageBuffer imageBuffer: CVImageBuffer!)
    init!(CVImageBuffer imageBuffer: CVImageBuffer!, options dict: [NSObject : AnyObject]!)
    init!(CVPixelBuffer buffer: CVPixelBuffer!)
    init!(CVPixelBuffer buffer: CVPixelBuffer!, options dict: [NSObject : AnyObject]!)
    init!(color color: CIColor!)
    func imageByApplyingTransform(_ matrix: CGAffineTransform) -> CIImage!
    func imageByApplyingOrientation(_ orientation: Int32) -> CIImage!
    func imageTransformForOrientation(_ orientation: Int32) -> CGAffineTransform
    func imageByCompositingOverImage(_ dest: CIImage!) -> CIImage!
    func imageByCroppingToRect(_ r: CGRect) -> CIImage!
    func imageByClampingToExtent() -> CIImage!
    func extent() -> CGRect
    func imageByApplyingFilter(_ filterName: String!, withInputParameters params: [NSObject : AnyObject]!) -> CIImage!
    func properties() -> [NSObject : AnyObject]!
    func definition() -> CIFilterShape!
    func url() -> NSURL!
    func colorSpace() -> Unmanaged<CGColorSpace>!
    func regionOfInterestForImage(_ im: CIImage!, inRect r: CGRect) -> CGRect
}
extension CIImage {
    func autoAdjustmentFilters() -> [AnyObject]!
    func autoAdjustmentFiltersWithOptions(_ dict: [NSObject : AnyObject]!) -> [AnyObject]!
}
extension CIImage {
    init!(image image: UIImage!)
    init!(image image: UIImage!, options options: [NSObject : AnyObject]!)
}
AnyObject, NSCoding, NSCopyingiOS 8.0
To
class CIImage : NSObject, NSSecureCoding, NSCoding, NSCopying {
     init(CGImage image: CGImage)
    class func imageWithCGImage(_ image: CGImage) -> CIImage
     init(CGImage image: CGImage, options options: [String : AnyObject]?)
    class func imageWithCGImage(_ image: CGImage, options options: [String : AnyObject]?) -> CIImage
     init(CGLayer layer: CGLayer)
    class func imageWithCGLayer(_ layer: CGLayer) -> CIImage
     init(CGLayer layer: CGLayer, options options: [String : AnyObject]?)
    class func imageWithCGLayer(_ layer: CGLayer, options options: [String : AnyObject]?) -> CIImage
     init(bitmapData data: NSData, bytesPerRow bytesPerRow: Int, size size: CGSize, format format: CIFormat, colorSpace colorSpace: CGColorSpace?)
    class func imageWithBitmapData(_ data: NSData, bytesPerRow bytesPerRow: Int, size size: CGSize, format format: CIFormat, colorSpace colorSpace: CGColorSpace?) -> CIImage
     init(texture name: UInt32, size size: CGSize, flipped flipped: Bool, colorSpace colorSpace: CGColorSpace?)
    class func imageWithTexture(_ name: UInt32, size size: CGSize, flipped flipped: Bool, colorSpace colorSpace: CGColorSpace?) -> CIImage
     init(texture name: UInt32, size size: CGSize, flipped flipped: Bool, options options: [String : AnyObject]?)
    class func imageWithTexture(_ name: UInt32, size size: CGSize, flipped flipped: Bool, options options: [String : AnyObject]?) -> CIImage
     init(MTLTexture texture: MTLTexture, options options: [String : AnyObject]?)
    class func imageWithMTLTexture(_ texture: MTLTexture, options options: [String : AnyObject]?) -> CIImage
     init?(contentsOfURL url: NSURL)
    class func imageWithContentsOfURL(_ url: NSURL) -> CIImage?
     init?(contentsOfURL url: NSURL, options options: [String : AnyObject]?)
    class func imageWithContentsOfURL(_ url: NSURL, options options: [String : AnyObject]?) -> CIImage?
     init?(data data: NSData)
    class func imageWithData(_ data: NSData) -> CIImage?
     init?(data data: NSData, options options: [String : AnyObject]?)
    class func imageWithData(_ data: NSData, options options: [String : AnyObject]?) -> CIImage?
     init(CVImageBuffer imageBuffer: CVImageBuffer)
    class func imageWithCVImageBuffer(_ imageBuffer: CVImageBuffer) -> CIImage
     init(CVImageBuffer imageBuffer: CVImageBuffer, options options: [String : AnyObject]?)
    class func imageWithCVImageBuffer(_ imageBuffer: CVImageBuffer, options options: [String : AnyObject]?) -> CIImage
     init(CVPixelBuffer pixelBuffer: CVPixelBuffer)
    class func imageWithCVPixelBuffer(_ pixelBuffer: CVPixelBuffer) -> CIImage
     init(CVPixelBuffer pixelBuffer: CVPixelBuffer, options options: [String : AnyObject]?)
    class func imageWithCVPixelBuffer(_ pixelBuffer: CVPixelBuffer, options options: [String : AnyObject]?) -> CIImage
     init(color color: CIColor)
    class func imageWithColor(_ color: CIColor) -> CIImage
    class func emptyImage() -> CIImage
    init(CGImage image: CGImage)
    init(CGImage image: CGImage, options options: [String : AnyObject]?)
    init(CGLayer layer: CGLayer)
    init(CGLayer layer: CGLayer, options options: [String : AnyObject]?)
    init?(data data: NSData)
    init?(data data: NSData, options options: [String : AnyObject]?)
    init(bitmapData data: NSData, bytesPerRow bytesPerRow: Int, size size: CGSize, format format: CIFormat, colorSpace colorSpace: CGColorSpace?)
    init(texture name: UInt32, size size: CGSize, flipped flipped: Bool, colorSpace colorSpace: CGColorSpace?)
    init(texture name: UInt32, size size: CGSize, flipped flipped: Bool, options options: [String : AnyObject]?)
    init(MTLTexture texture: MTLTexture, options options: [String : AnyObject]?)
    init?(contentsOfURL url: NSURL)
    init?(contentsOfURL url: NSURL, options options: [String : AnyObject]?)
    init(CVImageBuffer imageBuffer: CVImageBuffer)
    init(CVImageBuffer imageBuffer: CVImageBuffer, options options: [String : AnyObject]?)
    init(CVPixelBuffer pixelBuffer: CVPixelBuffer)
    init(CVPixelBuffer pixelBuffer: CVPixelBuffer, options options: [String : AnyObject]?)
    init(color color: CIColor)
    func imageByApplyingTransform(_ matrix: CGAffineTransform) -> CIImage
    func imageByApplyingOrientation(_ orientation: Int32) -> CIImage
    func imageTransformForOrientation(_ orientation: Int32) -> CGAffineTransform
    func imageByCompositingOverImage(_ dest: CIImage) -> CIImage
    func imageByCroppingToRect(_ rect: CGRect) -> CIImage
    func imageByClampingToExtent() -> CIImage
    func imageByApplyingFilter(_ filterName: String, withInputParameters params: [String : AnyObject]?) -> CIImage
    var extent: CGRect { get }
    var properties: [String : AnyObject] { get }
    var definition: CIFilterShape { get }
    var url: NSURL? { get }
    var colorSpace: CGColorSpace? { get }
    func regionOfInterestForImage(_ image: CIImage, inRect rect: CGRect) -> CGRect
}
extension CIImage {
    func autoAdjustmentFiltersWithOptions(_ options: [String : AnyObject]?) -> [CIFilter]
}
extension CIImage {
     init(imageProvider p: AnyObject, size width: Int, _ height: Int, format f: CIFormat, colorSpace cs: CGColorSpace?, options options: [String : AnyObject]?)
    class func imageWithImageProvider(_ p: AnyObject, size width: Int, _ height: Int, format f: CIFormat, colorSpace cs: CGColorSpace?, options options: [String : AnyObject]?) -> CIImage
    init(imageProvider p: AnyObject, size width: Int, _ height: Int, format f: CIFormat, colorSpace cs: CGColorSpace?, options options: [String : AnyObject]?)
}
extension CIImage {
    init?(image image: UIImage)
    init?(image image: UIImage, options options: [NSObject : AnyObject]?)
}
AnyObject, NSCoding, NSCopying, NSSecureCodingiOS 5.0

Declaration
From
func autoAdjustmentFiltersWithOptions(_ dict: [NSObject : AnyObject]!) -> [AnyObject]!
To
func autoAdjustmentFiltersWithOptions(_ options: [String : AnyObject]?) -> [CIFilter]

Declaration
From
class func emptyImage() -> CIImage!
To
class func emptyImage() -> CIImage

Declaration
From
func imageByApplyingFilter(_ filterName: String!, withInputParameters params: [NSObject : AnyObject]!) -> CIImage!
To
func imageByApplyingFilter(_ filterName: String, withInputParameters params: [String : AnyObject]?) -> CIImage

Declaration
From
func imageByApplyingOrientation(_ orientation: Int32) -> CIImage!
To
func imageByApplyingOrientation(_ orientation: Int32) -> CIImage

Declaration
From
func imageByApplyingTransform(_ matrix: CGAffineTransform) -> CIImage!
To
func imageByApplyingTransform(_ matrix: CGAffineTransform) -> CIImage

Declaration
From
func imageByClampingToExtent() -> CIImage!
To
func imageByClampingToExtent() -> CIImage

Declaration
From
func imageByCompositingOverImage(_ dest: CIImage!) -> CIImage!
To
func imageByCompositingOverImage(_ dest: CIImage) -> CIImage

Declaration
From
func imageByCroppingToRect(_ r: CGRect) -> CIImage!
To
func imageByCroppingToRect(_ rect: CGRect) -> CIImage

Declaration
From
init!(bitmapData d: NSData!, bytesPerRow bpr: Int, size size: CGSize, format f: CIFormat, colorSpace c: CGColorSpace!)
To
init(bitmapData data: NSData, bytesPerRow bytesPerRow: Int, size size: CGSize, format format: CIFormat, colorSpace colorSpace: CGColorSpace?)

Declaration
From
init!(CGImage image: CGImage!)
To
init(CGImage image: CGImage)

Declaration
From
init!(CGImage image: CGImage!, options d: [NSObject : AnyObject]!)
To
init(CGImage image: CGImage, options options: [String : AnyObject]?)

Declaration
From
init!(color color: CIColor!)
To
init(color color: CIColor)

Declaration
From
init!(contentsOfURL url: NSURL!)
To
init?(contentsOfURL url: NSURL)

Declaration
From
init!(contentsOfURL url: NSURL!, options d: [NSObject : AnyObject]!)
To
init?(contentsOfURL url: NSURL, options options: [String : AnyObject]?)

Declaration
From
init!(CVPixelBuffer buffer: CVPixelBuffer!)
To
init(CVPixelBuffer pixelBuffer: CVPixelBuffer)

Declaration
From
init!(CVPixelBuffer buffer: CVPixelBuffer!, options dict: [NSObject : AnyObject]!)
To
init(CVPixelBuffer pixelBuffer: CVPixelBuffer, options options: [String : AnyObject]?)

Declaration
From
init!(data data: NSData!)
To
init?(data data: NSData)

Declaration
From
init!(data data: NSData!, options d: [NSObject : AnyObject]!)
To
init?(data data: NSData, options options: [String : AnyObject]?)

Declaration
From
init!(texture name: UInt32, size size: CGSize, flipped flag: Bool, colorSpace cs: CGColorSpace!)
To
init(texture name: UInt32, size size: CGSize, flipped flipped: Bool, colorSpace colorSpace: CGColorSpace?)

Declaration
From
func regionOfInterestForImage(_ im: CIImage!, inRect r: CGRect) -> CGRect
To
func regionOfInterestForImage(_ image: CIImage, inRect rect: CGRect) -> CGRect

Modified CIKernel
Declaration
From
class CIKernel : NSObject {
    class func kernelsWithString(_ s: String!) -> [AnyObject]!
    convenience init!(string string: String!)
    class func kernelWithString(_ string: String!) -> Self!
    func name() -> String!
    func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback!, arguments args: [AnyObject]!) -> CIImage!
}
To
class CIKernel : NSObject {
    class func kernelsWithString(_ string: String) -> [CIKernel]?
    convenience init?(string string: String)
    class func kernelWithString(_ string: String) -> Self?
    var name: String { get }
    func setROISelector(_ method: Selector)
    func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback, arguments args: [AnyObject]?) -> CIImage?
}

Declaration
From
func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback!, arguments args: [AnyObject]!) -> CIImage!
To
func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback, arguments args: [AnyObject]?) -> CIImage?

Declaration
From
convenience init!(string string: String!)
To
convenience init?(string string: String)

Declaration
From
class func kernelsWithString(_ s: String!) -> [AnyObject]!
To
class func kernelsWithString(_ string: String) -> [CIKernel]?

Declaration
From
class CIQRCodeFeature : CIFeature {
    var bounds: CGRect { get }
    var topLeft: CGPoint { get }
    var topRight: CGPoint { get }
    var bottomLeft: CGPoint { get }
    var bottomRight: CGPoint { get }
    var messageString: String! { get }
}
To
class CIQRCodeFeature : CIFeature {
    var bounds: CGRect { get }
    var topLeft: CGPoint { get }
    var topRight: CGPoint { get }
    var bottomLeft: CGPoint { get }
    var bottomRight: CGPoint { get }
    var messageString: String { get }
}

Declaration
From
var messageString: String! { get }
To
var messageString: String { get }

Modified CIVector
DeclarationProtocolsIntroduction
From
class CIVector : NSObject, NSCopying, NSCoding {
    init!(values values: UnsafePointer<CGFloat>, count count: Int) -> CIVector
    class func vectorWithValues(_ values: UnsafePointer<CGFloat>, count count: Int) -> CIVector!
    init!(x x: CGFloat) -> CIVector
    class func vectorWithX(_ x: CGFloat) -> CIVector!
    init!(x x: CGFloat, y y: CGFloat) -> CIVector
    class func vectorWithX(_ x: CGFloat, y y: CGFloat) -> CIVector!
    init!(x x: CGFloat, y y: CGFloat, z z: CGFloat) -> CIVector
    class func vectorWithX(_ x: CGFloat, y y: CGFloat, z z: CGFloat) -> CIVector!
    init!(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat) -> CIVector
    class func vectorWithX(_ x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat) -> CIVector!
    init!(CGPoint p: CGPoint) -> CIVector
    class func vectorWithCGPoint(_ p: CGPoint) -> CIVector!
    init!(CGRect r: CGRect) -> CIVector
    class func vectorWithCGRect(_ r: CGRect) -> CIVector!
    init!(CGAffineTransform t: CGAffineTransform) -> CIVector
    class func vectorWithCGAffineTransform(_ t: CGAffineTransform) -> CIVector!
    init!(string representation: String!) -> CIVector
    class func vectorWithString(_ representation: String!) -> CIVector!
    init!(values values: UnsafePointer<CGFloat>, count count: Int)
    init!(x x: CGFloat)
    init!(x x: CGFloat, y y: CGFloat)
    init!(x x: CGFloat, y y: CGFloat, z z: CGFloat)
    init!(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat)
    init!(CGPoint p: CGPoint)
    init!(CGRect r: CGRect)
    init!(CGAffineTransform r: CGAffineTransform)
    init!(string representation: String!)
    func valueAtIndex(_ index: Int) -> CGFloat
    func count() -> Int
    func X() -> CGFloat
    func Y() -> CGFloat
    func Z() -> CGFloat
    func W() -> CGFloat
    func CGPointValue() -> CGPoint
    func CGRectValue() -> CGRect
    func CGAffineTransformValue() -> CGAffineTransform
    func stringRepresentation() -> String!
}
AnyObject, NSCoding, NSCopyingiOS 8.0
To
class CIVector : NSObject, NSCopying, NSSecureCoding, NSCoding {
    convenience init(values values: UnsafePointer<CGFloat>, count count: Int)
    class func vectorWithValues(_ values: UnsafePointer<CGFloat>, count count: Int) -> Self
    convenience init(x x: CGFloat)
    class func vectorWithX(_ x: CGFloat) -> Self
    convenience init(x x: CGFloat, y y: CGFloat)
    class func vectorWithX(_ x: CGFloat, y y: CGFloat) -> Self
    convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat)
    class func vectorWithX(_ x: CGFloat, y y: CGFloat, z z: CGFloat) -> Self
    convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat)
    class func vectorWithX(_ x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat) -> Self
    convenience init(CGPoint p: CGPoint)
    class func vectorWithCGPoint(_ p: CGPoint) -> Self
    convenience init(CGRect r: CGRect)
    class func vectorWithCGRect(_ r: CGRect) -> Self
    convenience init(CGAffineTransform t: CGAffineTransform)
    class func vectorWithCGAffineTransform(_ t: CGAffineTransform) -> Self
    convenience init(string representation: String)
    class func vectorWithString(_ representation: String) -> Self
    init(values values: UnsafePointer<CGFloat>, count count: Int)
    convenience init(x x: CGFloat)
    convenience init(x x: CGFloat, y y: CGFloat)
    convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat)
    convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat)
    convenience init(CGPoint p: CGPoint)
    convenience init(CGRect r: CGRect)
    convenience init(CGAffineTransform r: CGAffineTransform)
    convenience init(string representation: String)
    func valueAtIndex(_ index: Int) -> CGFloat
    var count: Int { get }
    var X: CGFloat { get }
    var Y: CGFloat { get }
    var Z: CGFloat { get }
    var W: CGFloat { get }
    var CGPointValue: CGPoint { get }
    var CGRectValue: CGRect { get }
    var CGAffineTransformValue: CGAffineTransform { get }
    var stringRepresentation: String { get }
}
AnyObject, NSCoding, NSCopying, NSSecureCodingiOS 5.0

Declaration
From
init!(CGAffineTransform r: CGAffineTransform)
To
convenience init(CGAffineTransform r: CGAffineTransform)

Declaration
From
init!(CGPoint p: CGPoint)
To
convenience init(CGPoint p: CGPoint)

Declaration
From
init!(CGRect r: CGRect)
To
convenience init(CGRect r: CGRect)

Declaration
From
init!(string representation: String!)
To
convenience init(string representation: String)

Declaration
From
init!(values values: UnsafePointer<CGFloat>, count count: Int)
To
init(values values: UnsafePointer<CGFloat>, count count: Int)

Declaration
From
init!(x x: CGFloat)
To
convenience init(x x: CGFloat)

Declaration
From
init!(x x: CGFloat, y y: CGFloat)
To
convenience init(x x: CGFloat, y y: CGFloat)

Declaration
From
init!(x x: CGFloat, y y: CGFloat, z z: CGFloat)
To
convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat)

Declaration
From
init!(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat)
To
convenience init(x x: CGFloat, y y: CGFloat, z z: CGFloat, w w: CGFloat)

Modified CIWarpKernel
Declaration
From
class CIWarpKernel : CIKernel {
    func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback!, inputImage image: CIImage!, arguments args: [AnyObject]!) -> CIImage!
}
To
class CIWarpKernel : CIKernel {
    convenience init?(string string: String)
    class func kernelWithString(_ string: String) -> Self?
    func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback, inputImage image: CIImage, arguments args: [AnyObject]?) -> CIImage?
}

Declaration
From
func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback!, inputImage image: CIImage!, arguments args: [AnyObject]!) -> CIImage!
To
func applyWithExtent(_ extent: CGRect, roiCallback callback: CIKernelROICallback, inputImage image: CIImage, arguments args: [AnyObject]?) -> CIImage?

Introduction
FromiOS 8.0
ToiOS 5.0

Introduction
FromiOS 5.0
ToiOS 8.0

Introduction
FromiOS 5.0
ToiOS 8.0