我正在编写基于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)
答案 0 :(得分:26)
您可以使用NSImage
属性TIFFRepresentation将NSImage
转换为NSData
:
let myImageData = yourImage.TIFFRepresentation!
如果您需要将图片数据保存为PNG文件,可以使用NSBitmapImageRep(data:)
和representationUsingType
创建扩展名,以帮助您将Data
转换为PNG格式:
更新:Xcode 8.2.1•Swift 3.0.2
extension NSBitmapImageRep {
var png: Data? {
return representation(using: .png, properties: [:])
}
}
extension Data {
var bitmap: NSBitmapImageRep? {
return NSBitmapImageRep(data: self)
}
}
extension NSImage {
var png: Data? {
return tiffRepresentation?.bitmap?.png
}
func savePNG(to url: URL) -> Bool {
do {
try png?.write(to: url)
return true
} catch {
print(error)
return false
}
}
}
<强>使用强>
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 picture.savePNG(to: imageURL) {
print("image saved as PNG")
}