问题
How do you get a person's image from an iPhone address book?
回答1:
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.
回答2:
(NSData*)ABPersonCopyImageDataWithFormat([targetPeople objectAtIndex:index], kABPersonImageFormatThumbnail)
This is faster since it returns a thumbnail.
回答3:
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)
{
//...
}
来源:https://stackoverflow.com/questions/2085959/get-image-of-a-person-from-iphone-address-book