国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS實現圖片保存與搜索功能

2019-10-21 18:55:59
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了iOS實現圖片保存與搜索功能的相關資料,需要的朋友可以參考下
 

本文實現Photos.framework的常見功能,包括:創建自定義相冊、保存圖片到自定義相冊、搜索所有相冊的圖片,具體內容如下
1、保存圖片到相冊 

/** * 保存圖片到相冊 */- (IBAction)saveImage {  PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus];  if (status == PHAuthorizationStatusDenied) {    NSLog(@"請到【設置-隱私-照片】打開訪問開關");  } else if (status == PHAuthorizationStatusRestricted) {    NSLog(@"無法訪問相冊");  } else {    // 保存相片的標識    __block NSString *assetId = nil;           [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{      // 保存相片到相機膠卷,并返回標識      assetId = [PHAssetCreationRequest creationRequestForAssetFromImage:[UIImage imageNamed:@"logo"]].placeholderForCreatedAsset.localIdentifier;    } completionHandler:^(BOOL success, NSError * _Nullable error) {      if (!success) {        NSLog(@"保存失敗:%@", error);        return;      }               // 根據標識獲得相片對象      PHAsset *asset = [PHAsset fetchAssetsWithLocalIdentifiers:@[assetId] options:nil].lastObject;               // 拿到自定義的相冊對象      PHAssetCollection *collection = [self collection];      if (collection == nil) return;               // 保存相片到自定義相冊中      [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{        [[PHAssetCollectionChangeRequest changeRequestForAssetCollection:collection] addAssets:@[asset]];      } completionHandler:^(BOOL success, NSError * _Nullable error) {        if (success) {          NSLog(@"保存成功");        } else {          NSLog(@"保存失敗:%@", error);        }      }];    }];  }}

2、搜索所有相片 

/** * 查詢所有的圖片 */- (IBAction)searchAllImages {       // 遍歷所有的自定義相冊  PHFetchResult<PHAssetCollection *> *collectionResult0 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];  for (PHAssetCollection *collection in collectionResult0) {    [self searchAllImagesInCollection:collection];  }       // 獲得相機膠卷的圖片  PHFetchResult<PHAssetCollection *> *collectionResult1 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];  for (PHAssetCollection *collection in collectionResult1) {    if (![collection.localizedTitle isEqualToString:@"Camera Roll"]) continue;    [self searchAllImagesInCollection:collection];    break;  }}   /** * 查詢某個相冊里面的所有圖片 */- (void)searchAllImagesInCollection:(PHAssetCollection *)collection{  // 采取同步獲取圖片(只獲得一次圖片)  PHImageRequestOptions *imageOptions = [[PHImageRequestOptions alloc] init];  imageOptions.synchronous = YES;       NSLog(@"相冊名字:%@", collection.localizedTitle);       // 遍歷這個相冊中的所有圖片  PHFetchResult<PHAsset *> *assetResult = [PHAsset fetchAssetsInAssetCollection:collection options:nil];  for (PHAsset *asset in assetResult) {    // 過濾非圖片    if (asset.mediaType != PHAssetMediaTypeImage) continue;           // 圖片原尺寸    CGSize targetSize = CGSizeMake(asset.pixelWidth, asset.pixelHeight);    // 請求圖片    [[PHImageManager defaultManager] requestImageForAsset:asset targetSize:targetSize contentMode:PHImageContentModeDefault options:imageOptions resultHandler:^(UIImage * _Nullable result, NSDictionary * _Nullable info) {      NSLog(@"圖片:%@", result);    }];  }}

以上就是本文的全部內容,希望對大家的學習有所幫助。



注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 山阳县| 荃湾区| 乌兰浩特市| 普陀区| 南京市| 资源县| 深泽县| 自贡市| 丰宁| 逊克县| 通辽市| 虎林市| 德清县| 武城县| 双桥区| 罗定市| 文成县| 定日县| 双牌县| 龙江县| 崇礼县| 饶平县| 大邑县| 搜索| 双鸭山市| 百色市| 盐亭县| 若羌县| 容城县| 密云县| 双鸭山市| 长兴县| 哈密市| 色达县| 泸溪县| 伊金霍洛旗| 昌乐县| 凤翔县| 辽源市| 沾化县| 攀枝花市|