17

如何从 iPhone 通讯录中获取一个人的图像?

4

3 回答 3

42

你可以这样做......

NSData  *imgData = (NSData *)ABPersonCopyImageData(person);

UIImage  *img = [UIImage imageWithData:imgData];

哪里person是类型ABRecordRef。现在,由于 CFData 和 NSData 是免费桥接的,您可以简单地键入 cast CFDatatoNSData并获取图像

希望这可以帮助。

于 2010-01-18T12:50:45.687 回答
12
(NSData*)ABPersonCopyImageDataWithFormat([targetPeople objectAtIndex:index], kABPersonImageFormatThumbnail)

这更快,因为它返回一个缩略图。

于 2011-08-05T08:31:48.040 回答
0

稍微刷新的代码:

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)
{
    //...
}
于 2015-01-21T13:08:05.873 回答