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 myImageData = yourImage.TIFFRepresentation!
_
画像データをPNGファイルに保存する必要がある場合は、NSBitmapImageRep(data:)
およびrepresentationUsingType
を使用して、Data
をPNG形式に変換するのに役立つ拡張子を作成できます。
更新:Xcode8.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")
}
_