Bạn có thể sử dụng NSImage
tài sản TIFFRepresentation để chuyển đổi NSImage
của bạn để NSData
như sau:
let myImageData = yourImage.TIFFRepresentation!
Nếu bạn cần phải lưu dữ liệu hình ảnh của bạn vào một tập tin PNG bạn có thể sử dụng NSBitmapImageRep(data:)
và representationUsingType
để tạo tiện ích giúp bạn chuyển đổi Data
thành định dạng PNG như sau:
Cập nhật: 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
}
}
}
sử dụng
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")
}
Nguồn
2015-03-25 17:59:53
https://stackoverflow.com/questions/46432709/saving-nsimage -in-different-formats-local/46481947 # 46481947 –