How do you get a person\'s image from an iPhone address book?
You can do it like this....
NSData *imgData = (NSData *)ABPersonCopyImageData(person);
UIImage *img = [UIImage imageWithData:imgData];
where person
is of type ABRecordRef
. Now, as CFData and NSData are toll-free bridged, you can simply type cast CFData
to NSData
and get the image
Hope this helps.
Slightly refreshed code:
UIImage *image = nil;
@try
{
CFDataRef cfImage = ABPersonCopyImageData(person);
// or CFDataRef cfImage = ABPersonCopyImageDataWithFormat(person, kABPersonImageFormatThumbnail);
if (cfImage)
{
image = [UIImage imageWithData:(__bridge NSData*)cfImage];
CFRelease(cfImage);
}
}
@catch (NSException *exception)
{
//...
}
(NSData*)ABPersonCopyImageDataWithFormat([targetPeople objectAtIndex:index], kABPersonImageFormatThumbnail)
This is faster since it returns a thumbnail.