如何从iPhone通讯录中获取一个人的头像?
你可以这样做...
NSData *imgData = (NSData *)ABPersonCopyImageData(person);
UIImage *img = [UIImage imageWithData:imgData];
其中 person
的类型为 ABRecordRef
。由于CFData和NSData是toll-free bridged,你可以直接将CFData
强制转换为NSData
并获取图像。
希望这能有所帮助。
(NSData*)ABPersonCopyImageDataWithFormat([targetPeople objectAtIndex:index], kABPersonImageFormatThumbnail)
这样更快,因为它返回了一个缩略图。
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)
{
//...
}