Skip to content

Instantly share code, notes, and snippets.

@mingsai
Created February 12, 2016 17:47
Show Gist options
  • Select an option

  • Save mingsai/22fcfed912ea79c1b68d to your computer and use it in GitHub Desktop.

Select an option

Save mingsai/22fcfed912ea79c1b68d to your computer and use it in GitHub Desktop.
A Swift class to manage image to data value transformations for use with Core Data
//
// MNGImageToDataTransformer.swift
//
//
// Created by Tommie N. Carter, Jr., MBA on 9/11/15.
// Copyright © 2015 MING Technology. All rights reserved.
//
import UIKit
class MNGImageToDataTransformer: NSValueTransformer {
override class func allowsReverseTransformation () -> Bool {
return true
}
override class func transformedValueClass () -> AnyClass {
return NSData.classForCoder()
}
//NOTE: Can we consider using UIImageJPEGRepresentation for thumbnails
override func transformedValue (value:AnyObject?) -> AnyObject? {
return UIImagePNGRepresentation(value! as! UIImage)
}
override func reverseTransformedValue (value: AnyObject?) -> AnyObject? {
return UIImage (data: value! as! NSData)
}
}
class MNGThumbnailImageToDataTransformer: NSValueTransformer {
override class func allowsReverseTransformation () -> Bool {
return true
}
override class func transformedValueClass () -> AnyClass {
return NSData.classForCoder()
}
//Use JPEG for low-resolution thumbnails
override func transformedValue (value:AnyObject?) -> AnyObject? {
return UIImageJPEGRepresentation((value! as! UIImage), 0.0)
}
override func reverseTransformedValue (value: AnyObject?) -> AnyObject? {
return UIImage (data: value! as! NSData)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment