Swift NSImage to CGImage
cocoa, nsimage, swift
Solution
Here's what I'm using to convert NSImage to CGImage:
let image = NSImage(named:"image")
if let image = image {
var imageRect = CGRect(x: 0, y: 0, width: image.size.width, height: image.size.height)
let imageRef = image.cgImage(forProposedRect: &imageRect, context: nil, hints: nil)
}
Problem
How can I convert a NSImage to CGImage in Swift? In Objective-C I did it like this: ``` - (CGImageRef)CGImage { NSData *imageData = self.TIFFRepresentation; CGImageSourceRef source = CGImageSourceCreateWithData((__bridge CFDataRef)imageData, NULL); CGImageRef maskRef = CGImageSourceCreateImageAtIndex(source, 0, NULL); return maskRef; } ``` Now I tried with: ``` extension NSImage { var CGImage: CGImageRef { get { let imageData = self.TIFFRepresentation let source = CGImageSourceCreateWithData(imageData as CFDataRef, nil) let maskRef = CGImageSourceCreateImageAtIndex(source, UInt(0), nil) return maskRef; } } } ``` I can't compile, I'm getting the error: `Could not find an overload for 'init' that accepts the supplied arguments'` at the line `let maskRef ...`