NSImage 到 NSData 为 PNG Swift
NSImage to NSData as PNG Swift
我正在基于 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
属性 TIFFRepresentation 将您的 NSImage
转换为 NSData
:
let imageData = yourImage.TIFFRepresentation
如果您需要将图像数据保存为 PNG 文件,您可以使用 NSBitmapImageRep(data:)
和 representationUsingType
创建一个扩展来帮助您将 Data
转换为 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)
}
}
我正在基于 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
属性 TIFFRepresentation 将您的 NSImage
转换为 NSData
:
let imageData = yourImage.TIFFRepresentation
如果您需要将图像数据保存为 PNG 文件,您可以使用 NSBitmapImageRep(data:)
和 representationUsingType
创建一个扩展来帮助您将 Data
转换为 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)
}
}