Parse platform 将NSData映像为PNG Swift

Parse platform 将NSData映像为PNG Swift,parse-platform,uiimage,nsdata,nsimage,uiimagepngrepresentation,Parse Platform,Uiimage,Nsdata,Nsimage,Uiimagepngrepresentation,我正在写一个基于iOS应用程序的Mac应用程序。下面的代码将UIImage转换为NSData以上载到Parse.com 我想为Mac做同样的事情,但我似乎无法将其转换为NSData。我该怎么办 谢谢 var image = UIImage(named: "SmudgeInc") let imageData = UIImagePNGRepresentation(image) let imageFile = PFFile(name:"image.png", data:imageData) 您可

我正在写一个基于iOS应用程序的Mac应用程序。下面的代码将UIImage转换为NSData以上载到Parse.com

我想为Mac做同样的事情,但我似乎无法将其转换为NSData。我该怎么办

谢谢

var image = UIImage(named: "SmudgeInc")

let imageData = UIImagePNGRepresentation(image)

let imageFile = PFFile(name:"image.png", data:imageData)

您可以使用
NSImage
属性将
NSImage
转换为
NSData

let imageData = yourImage.TIFFRepresentation
如果需要将图像数据保存到PNG文件,可以使用
NSBitmapImageRep(数据:)
representationUsingType
创建扩展名,以帮助您将
数据
转换为PNG格式:

更新:Xcode 11•Swift 5.1

extension NSBitmapImageRep {
    var png: Data? { representation(using: .png, properties: [:]) }
}
extension Data {
    var bitmap: NSBitmapImageRep? { NSBitmapImageRep(data: self) }
}
extension NSImage {
    var png: Data? { tiffRepresentation?.bitmap?.png }
}

用法

let picture = NSImage(contentsOf: URL(string: "https://i.stack.imgur.com/Xs4RX.jpg")!)!

let imageURL = FileManager.default.urls(for: .desktopDirectory, in: .userDomainMask).first!.appendingPathComponent("image.png")
if let png = picture.png {
    do {
        try png.write(to: imageURL)
        print("PNG image saved")
    } catch {
        print(error)
    }
}