You can use the NSImage
property TIFFRepresentation to convert your NSImage
to NSData
:
let imageData = yourImage.TIFFRepresentation
If you need to save your image data to a PNG file you can use NSBitmapImageRep(data:)
and representationUsingType
to create an extension to help you convert Data
to PNG format:
Update: 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 }
}
usage
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)
}
}
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…