Swift NSImage to CGImage

后端 未结 5 1921
旧时难觅i
旧时难觅i 2020-12-14 03:24

How can I convert a NSImage to CGImage in Swift? In Objective-C I did it like this:

- (CGImageRef)CGImage {
    NSData *imageData = self.TIFFRepresentation;
         


        
5条回答
  •  别那么骄傲
    2020-12-14 03:56

    Ah, I found the solution. It's because in Swift you only the an unmanaged object (I just did not really understand, what this means). But this code now works:

    extension NSImage {
        var CGImage: CGImageRef {
        get {
            let imageData = self.TIFFRepresentation
            let source = CGImageSourceCreateWithData(imageData as CFDataRef, nil).takeUnretainedValue()
            let maskRef = CGImageSourceCreateImageAtIndex(source, UInt(0), nil)
            return maskRef.takeUnretainedValue();
        }
        }
    }
    

提交回复
热议问题