清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>
/** * 更新联系人的头像属性. * * @param aPerson 要更新其头像的联系人.联系人对象又有一个UIImage类型的avatarImage头像属性和一个NSString类型的nameOfdefaultImg默认图片名称属性 * @param assetUrl assetUrl字符串.一种可能的获取方式:<UIImagePickerControllerDelegate>协议方法 * - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info * 的info参数的键UIImagePickerControllerReferenceURL对应的值 * @param defaultImageName 默认图片路径.当无法通过assetUrl获取地址时,会尝试使用此图片地址来获取图片文件. */ - (void) updateAvaterImageOfPerson: (CFPerson *) aPerson assetUrlString: (NSString *) assetUrl defaultImageName: (NSString *) defaultImageName { if (nil == aPerson) { // 联系人对象为空,直接返回. return; } // 是否是应用内置图片? aPerson.avatarImage = [UIImage imageNamed: assetUrl]; if (nil != aPerson.avatarImage) { return; } // 是否是本地图片? ALAssetsLibrary *lib = [[[ALAssetsLibrary alloc] init] autorelease]; [lib assetForURL:[NSURL URLWithString:self.avatarName] resultBlock:^(ALAsset *asset) { // 使用asset来获取本地图片 ALAssetRepresentation *assetRep = [asset defaultRepresentation]; CGImageRef imgRef = [assetRep fullResolutionImage]; aPerson.avatarImage = [UIImage imageWithCGImage:imgRef scale:assetRep.scale orientation:(UIImageOrientation)assetRep.orientation]; if (nil == aPerson.avatarImage) {// 使用默认图片 if (nil == defaultImageName) { return; } [aPerson updateAvaterImageOfPerson: aPerson assetUrlString: aPerson.nameOfdefaultImg defaultImageName:nil]; } } failureBlock:^(NSError *error) { // 访问库文件被拒绝,则直接使用默认图片 if (nil == aPerson.avatarImage) {// 使用默认图片 if (nil == defaultImageName) { return; } [aPerson updateAvaterImageOfPerson: aPerson assetUrlString: aPerson.nameOfdefaultImg defaultImageName:nil]; } } ]; }