博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ALAssetsLibrary取出保存图片到相册
阅读量:6712 次
发布时间:2019-06-25

本文共 3084 字,大约阅读时间需要 10 分钟。

hot3.png

需要先导入文件

#import 

从相册取得图片信息

// ALAssetsLibrary 销毁了为nil时;下面的group(ALAssetsGroup)、result(ALAsset)就没有了;ALAssetsLibrary可以设置为全局变量就可以在这个文件中取得它的信息,不能传递到其他文件,相=想传到其他文件就要把你想要的信息取出来      ALAssetsLibrary  *library =[[ALAssetsLibrary alloc] init];    [library enumerateGroupsWithTypes:ALAssetsGroupAll usingBlock:^(ALAssetsGroup *group, BOOL *stop) {//其中一条group信息//ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:82/** ALAssetsGroup 根据[group valueForProperty:<#(NSString *)#>]取得属性*ALAssetsGroupPropertyName 这个组的名字*ALAssetsGroupPropertyType 类型*ALAssetsGroupPropertyPersistentID 相册的ID,也就是相册的文件名*ALAssetsGroupPropertyURL 地址*/     //    [[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"Camera Roll"]//得到这个group所有的图片     [group enumerateAssetsUsingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {        PhotoModel *model = [[PhotoModel alloc]init];        model.date= [sset valueForProperty:ALAssetPropertyDate];//储存日期        model.type = [sset valueForProperty:ALAssetPropertyType];//文件类型        model.url =[sset defaultRepresentation].url;//地址//用UIimage传递图片,cgimageref 会照成内存问题(没有深入解决这个问题?)                model.thumbNailimage =[UIImage imageWithCGImage:[sset thumbnail]];//缩略图                model.fullScreenImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]];//高清图        }            } failureBlock:^(NSError *error) {        NSLog(@"error:%@",error.localizedDescription);    }];

拍照以后把图片保存到相册

#pragma mark--uiimagepickercontroller delegate-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary
*)info{ UIImage *image = [info valueForKey:UIImagePickerControllerOriginalImage]; if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init]; /**保存图片到相册*/ [assetslibrary writeImageToSavedPhotosAlbum:image.CGImage orientation:(ALAssetOrientation)image.imageOrientation completionBlock:^(NSURL *assetURL, NSError *error) { /**根据assetURL区得在相册中的信息asset*/ [assetslibrary assetForURL:assetURL resultBlock:^(ALAsset *asset) { NSString *date =[asset valueForProperty:ALAssetPropertyDate]; PhotoModel *model = [[PhotoModel alloc]init]; model.date= date; model.type = [asset valueForProperty:ALAssetPropertyType]; model.url =[asset defaultRepresentation].url; model.thumbNailimage =[UIImage imageWithCGImage:[sset thumbnail]]; model.fullScreenImage = [UIImage imageWithCGImage:[[asset defaultRepresentation] fullResolutionImage]]; [self.dataArray addObject:model]; } failureBlock:^(NSError *error) { }]; }]; } [picker dismissViewControllerAnimated:YES completion:^{ }];}

为了相册选择图片、拍照 让它们的图片信息一致。

拍照时想要设置为中文按钮需要把info.plist的Localization native development region 设置为China

转载于:https://my.oschina.net/lkeageer/blog/731149

你可能感兴趣的文章