ios-获取系统相簿里边的所有照片

2023-12-04 11:48

本文主要是介绍ios-获取系统相簿里边的所有照片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

#import<AssetsLibrary/AssetsLibrary.h>



-(void)getImgs{

    

   dispatch_async(dispatch_get_main_queue(), ^{

       NSAutoreleasePool *pool = [[NSAutoreleasePoolalloc] init];

        

        

       ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *myerror){

            NSLog(@"相册访问失败 =%@", [myerrorlocalizedDescription]);

            if ([myerror.localizedDescription rangeOfString:@"Global denied access"].location!=NSNotFound) {

                  NSLog(@"无法访问相册.请在'设置->定位服务'设置为打开状态.");

            }else{

                NSLog(@"相册访问失败.");

            }

        };

        

        ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result,NSUInteger index, BOOL *stop){

            if (result!=NULL) {

        

                if ([[result valueForProperty:ALAssetPropertyType]isEqualToString:ALAssetTypePhoto]) {

                    

                    NSString *urlstr=[NSString stringWithFormat:@"%@",result.defaultRepresentation.url];//图片的url

/*result.defaultRepresentation.fullScreenImage//图片的大图

result.thumbnail                            //图片的缩略图小图

//                    NSRange range1=[urlstr rangeOfString:@"id="];

//                    NSString *resultName=[urlstr substringFromIndex:range1.location+3];

//                    resultName=[resultName stringByReplacingOccurrencesOfString:@"&ext=" withString:@"."];//格式demo:123456.png

*/

                    

                  [self._dataArray addObject:urlstr];

                }

            }

           

        };

       ALAssetsLibraryGroupsEnumerationResultsBlock

        libraryGroupsEnumeration = ^(ALAssetsGroup* group,BOOL* stop){

            

            if (group == nil

            {

                

            }

            

            if (group!=nil) {

                NSString *g=[NSString stringWithFormat:@"%@",group];//获取相簿的组

               NSLog(@"gg:%@",g);//gg:ALAssetsGroup - Name:Camera Roll, Type:Saved Photos, Assets count:71


                NSString *g1=[g substringFromIndex:16 ] ;

                NSArray *arr=[NSArray arrayWithArray:[g1componentsSeparatedByString:@","]];

                NSString *g2=[[arr objectAtIndex:0]substringFromIndex:5];

                if ([g2 isEqualToString:@"Camera Roll"]) {

                    g2=@"相机胶卷";

                }

                NSString *groupName=g2;//组的name

                

                [groupenumerateAssetsUsingBlock:groupEnumerAtion];

            }

            

        };

        

       ALAssetsLibrary* library = [[ALAssetsLibraryalloc] init];

        [libraryenumerateGroupsWithTypes:ALAssetsGroupAll

                              usingBlock:libraryGroupsEnumeration 

                            failureBlock:failureblock];

        [library release];      

        [pool release];

    });  

    

}


//------------------------根据图片的url反取图片-----


 ALAssetsLibrary *assetLibrary=[[ALAssetsLibraryalloc] init]; 

NSURL *url=[NSURLURLWithString:urlStr];

[assetLibrary assetForURL:url resultBlock:^(ALAsset *asset)  {

                UIImage *image=[UIImage imageWithCGImage:asset.thumbnail];

                cellImageView.image=image;

           

                }failureBlock:^(NSError *error) {

                    NSLog(@"error=%@",error);

            }

             ];

//---------------------


这篇关于ios-获取系统相簿里边的所有照片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/453353

相关文章

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

通过cmd获取网卡速率的代码

《通过cmd获取网卡速率的代码》今天从群里看到通过bat获取网卡速率两段代码,感觉还不错,学习bat的朋友可以参考一下... 1、本机有线网卡支持的最高速度:%v%@echo off & setlocal enabledelayedexpansionecho 代码开始echo 65001编码获取: >

使用Python实现调用API获取图片存储到本地的方法

《使用Python实现调用API获取图片存储到本地的方法》开发一个自动化工具,用于从JSON数据源中提取图像ID,通过调用指定API获取未经压缩的原始图像文件,并确保下载结果与Postman等工具直接... 目录使用python实现调用API获取图片存储到本地1、项目概述2、核心功能3、环境准备4、代码实现

Python实现获取带合并单元格的表格数据

《Python实现获取带合并单元格的表格数据》由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,所以本文我们就来聊聊如何使用Python实现获取带合并单元格的表格数据吧... 由于在日常运维中经常出现一些合并单元格的表格,如果要获取数据比较麻烦,现将将封装成类,并通过调用list_exc

ubuntu20.0.4系统中安装Anaconda的超详细图文教程

《ubuntu20.0.4系统中安装Anaconda的超详细图文教程》:本文主要介绍了在Ubuntu系统中如何下载和安装Anaconda,提供了两种方法,详细内容请阅读本文,希望能对你有所帮助... 本文介绍了在Ubuntu系统中如何下载和安装Anaconda。提供了两种方法,包括通过网页手动下载和使用wg

ubuntu系统使用官方操作命令升级Dify指南

《ubuntu系统使用官方操作命令升级Dify指南》Dify支持自动化执行、日志记录和结果管理,适用于数据处理、模型训练和部署等场景,今天我们就来看看ubuntu系统中使用官方操作命令升级Dify的方... Dify 是一个基于 docker 的工作流管理工具,旨在简化机器学习和数据科学领域的多步骤工作流。

使用Python和SQLAlchemy实现高效的邮件发送系统

《使用Python和SQLAlchemy实现高效的邮件发送系统》在现代Web应用中,邮件通知是不可或缺的功能之一,无论是订单确认、文件处理结果通知,还是系统告警,邮件都是最常用的通信方式之一,本文将详... 目录引言1. 需求分析2. 数据库设计2.1 User 表(存储用户信息)2.2 CustomerO

通过C#获取Excel单元格的数据类型的方法详解

《通过C#获取Excel单元格的数据类型的方法详解》在处理Excel文件时,了解单元格的数据类型有助于我们正确地解析和处理数据,本文将详细介绍如何使用FreeSpire.XLS来获取Excel单元格的... 目录引言环境配置6种常见数据类型C# 读取单元格数据类型引言在处理 Excel 文件时,了解单元格