環境: Swift2.0
UIImage -> NSData
UIImagePNGRepresentation
関数、またはUIImageJPEGRepresentation
関数を使う。
関数定義
// return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format public func UIImagePNGRepresentation(image: UIImage) -> NSData? // return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least) public func UIImageJPEGRepresentation(image: UIImage, _ compressionQuality: CGFloat) -> NSData?
PNG 形式の画像データとして取り出す。
let data: NSData? = UIImagePNGRepresentation(image)
JPEG 形式の画像データとして取り出す。
let data: NSData? = UIImageJPEGRepresentation(image, 0.8) // 圧縮率 0(most)..1(least)
NSData -> UIImage
UIImage クラスに NSData を引数に渡すコンストラクタがある。
public init?(data: NSData)
これを使ってインスタンスを作成すればOK。
let image: UIImage? = UIImage(data: data)
NSData が Optional の場合は flatMap を使うとすっきり書ける。
let image: UIImage? = data.flatMap(UIImage.init)