1

我可以在 iPhone 通讯录中设置新联系人的缩略图,但是当该联系人呼叫我的手机时,手机不会显示全屏版本。相反,它只在屏幕顶部显示缩略图版本,而我手机的屏幕保护程序在后台。有没有什么特别的事情需要做而我忘记了(见下面的代码片段)?

另外,我确实发现以前的帖子表明无法为联系人保存以前的图像,但这仍然不能解决我的问题......

提前致谢!

UIImage *profileImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:picImageUrl]]];

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

1 回答 1

1

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

 -(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);
 }

然后保存

NSData *dataRef = [self dataFromImageData:imageData];
CFDataRef cfdata = CFDataCreate(NULL, [dataRef bytes], [dataRef length]);
ABPersonSetImageData(aContact, cfdata, NULL);
于 2014-12-16T03:44:13.423 回答