如何在Swift中获取NSImage对象的png表示

时间:2015-01-27 13:13:48

标签: swift

我知道我可以使用“UIImagePNGRepresentation(UIImagexxx)”来获取UIImage对象的png表示。 但我不确定如何为NSImage做类似的事情。我只能找到适用于NSImage对象的TIFFRepresentation。

有什么想法吗?非常感谢

1 个答案:

答案 0 :(得分:1)

为帮助跨平台代码,我实现了UIImagePNGRepresentation()版本,该版本可在Mac上运行(并使用NSImage):

#if os(macOS)

public func UIImagePNGRepresentation(_ image: NSImage) -> Data? {
    guard let cgImage = image.cgImage(forProposedRect: nil, context: nil, hints: nil)
        else { return nil }
    let imageRep = NSBitmapImageRep(cgImage: cgImage)
    imageRep.size = image.size // display size in points
    return imageRep.representation(using: .png, properties: [:])
}

#endif