You can store a UIImage (or an NSImage on Mac) as raw data. This can be useful if you’d like to save this in Core Data.
Here’s how you convert a UIImage into NSData:
NSData *imageData = UIImagePNGRepresentation(yourImage);
To convert NSData back to a UIImage, you can do this:
UIImage *image = [[UIImage alloc]initWithData:yourData];
The UIImage class is not available on Mac OS X, but its counterpart NSImage is almost identical.
– http://stackoverflow.com/questions/6476929/convert-uiimage-to-nsdata
NSValueTransformer
Core Data can convert images to and from data on the fly by using an NSValueTransformer.
Here’s one that works for images:
@implementation PatchBayTransformer +(BOOL)allowsReverseTransformation { return YES; } +(Class)transformedValueClass { return [NSData class]; } - (id)transformedValue:(id)value { // takes the UIImage into data and returns it NSData *imageData = UIImagePNGRepresentation(value); return imageData; } - (id)reverseTransformedValue:(id)value { // takes data and returns it as a UIImage UIImage *image = [[UIImage alloc]initWithData:value]; return image; }