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;
}