首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ABPersonSetImageData不为来电设置联系人的全尺寸图像

ABPersonSetImageData不为来电设置联系人的全尺寸图像
EN

Stack Overflow用户
提问于 2012-10-21 06:45:24
回答 1查看 376关注 0票数 1

我可以在iPhone地址簿中设置新联系人的缩略图,但当该联系人呼叫我的电话时,电话不会显示全屏版本。取而代之的是,它只在屏幕顶部显示缩略图版本,背景是我手机的屏幕保护程序。是不是有什么特别的事情需要做,而我却忘记了(参见下面的代码片段)?

此外,我确实找到了之前的一篇文章,指出没有以前的图片可以保存的联系人,但这仍然不能解决我的问题……

提前感谢!

代码语言:javascript
复制
UIImage *profileImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:picImageUrl]]];

NSData *profileImageDataRef = UIImagePNGRepresentation(profileImage);
ABPersonSetImageData(newPerson, (__bridge CFDataRef)profileImageDataRef, nil);
EN

回答 1

Stack Overflow用户

发布于 2014-12-16 11:44:13

尝试使用以下代码将图像裁剪为完整大小

代码语言:javascript
复制
 -(NSData *)dataFromImageData:(NSData *)imageData {
     UIImage *image = [UIImage imageWithData:imageData];
     if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)]) {
         UIGraphicsBeginImageContextWithOptions([UIScreen mainScreen].bounds.size, YES, 0.0);
     } else {
         UIGraphicsBeginImageContext([UIScreen mainScreen].bounds.size);
     }
     [image drawInRect:[UIScreen mainScreen].bounds];
     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
     return UIImageJPEGRepresentation(newImage, 0);
 }

然后保存它

代码语言:javascript
复制
NSData *dataRef = [self dataFromImageData:imageData];
CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
ABPersonSetImageData(aContact, cfdata, NULL);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12993353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档