`
jsntghf
  • 浏览: 2527616 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

列举图片库中的所有图片

    博客分类:
  • iOS
阅读更多

首先,将AssetsLibrary.framework导入到项目中。

 

PhotosViewController.h

 

#import <UIKit/UIKit.h>
#import <AssetsLibrary/AssetsLibrary.h>

@interface PhotosViewController : UIViewController <UITableViewDelegate, UITableViewDataSource>{
    NSMutableArray *assets;
    UITableView *tableView;
    UIActivityIndicatorView *activity;
}

@property (nonatomic, retain) IBOutlet UITableView *tableView;
@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *activity;

@end

 

PhotosViewController.m

 

#import "PhotosViewController.h"

@implementation PhotosViewController
@synthesize tableView;
@synthesize activity;

- (void)dealloc {
    [tableView release];
    [activity release];
    [super dealloc];
}

#pragma mark - View lifecycle

- (void)viewDidLoad {
    [super viewDidLoad];
    void (^assetEnumerator)(ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
        if(result != NULL) {
            NSLog(@"See Asset: %@", result);
            [assets addObject:result];  
        }
    };
    
    void (^assetGroupEnumerator)(ALAssetsGroup *, BOOL *) =  ^(ALAssetsGroup *group, BOOL *stop) {
        if(group != nil) {
            [group enumerateAssetsUsingBlock:assetEnumerator];
        }
        
        [self.tableView reloadData];
        [self.activity stopAnimating];
        [self.activity setHidden:YES];
    };
    
    assets = [[NSMutableArray alloc] init];
    ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
    [library enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos
                           usingBlock:assetGroupEnumerator
                         failureBlock: ^(NSError *error) {
                             NSLog(@"%@", error);
                         }];
}

- (void)viewDidUnload {
    [self setTableView:nil];
    [self setActivity:nil];
    [super viewDidUnload];
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [assets count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
	ALAsset *asset = [assets objectAtIndex:indexPath.row];
	[cell.imageView setImage:[UIImage imageWithCGImage:[asset thumbnail]]];
	[cell.textLabel setText:[NSString stringWithFormat:@"Photo %d", indexPath.row+1]];
    
    return cell;
}

@end

 

示例图:


分享到:
评论

相关推荐

    图片水印(包括单个图片和文件夹内的所有图片)

    在本项目中,我们探讨的是如何使用ASP.NET来实现图片水印的添加,不仅针对单个图片,而且可以批量处理文件夹内的所有图片。这涉及到图像处理库的使用、配置文件的设置以及ASP.NET的编程技巧。 首先,ASP.NET是微软...

    威纶图片库和使用手册

    在IT行业中,图片库通常是指一系列与特定主题相关的图像集合,此处指的可能是威纶触摸屏或工控设备的界面截图、硬件组件的实物照片,或者是故障排查时可能遇到的各种显示画面。这些图片能够直观地展示设备的外观、...

    Java将图片合并为视频

    在`pom.xml`文件中,你会看到`&lt;dependency&gt;`标签,它们列举了项目所依赖的外部库。例如,如果使用Java FFmpeg Bridge,可能会有如下依赖: ```xml &lt;groupId&gt;com.github.kokorin&lt;/groupId&gt; &lt;artifactId&gt;jaffree ...

    列举所有的显示模式(9KB)

    标题“列举所有的显示模式”指的是在计算机图形学和编程领域中,如何获取并展示系统支持的所有不同的显示设置。这些模式通常包括分辨率、颜色深度、刷新率等参数,它们定义了显示器如何显示图像。在Windows环境下,...

    Delphi 图片浏览器

    在这个图片浏览器中,TImage组件用于显示图片,TOpenDialog用于选择图片目录,TListView或TListBox可能用于显示图片列表。 3. **文件系统操作**: 程序需要遍历指定的目录,查找所有的JPG文件。这涉及到对文件系统...

    遍厉文件夹,并可输出图片文件的长宽

    例如,在Python中可以使用`os`和`os.path`库来列举目录中的文件和子目录。`os.listdir()`用于获取指定路径下的所有文件和目录名,而`os.path.splitext()`可以用来检查文件的扩展名,确保我们只处理图片文件。 2. ...

    VB图片浏览器(毕业设计)

    这涉及到VB中的图形处理和文件I/O操作,开发者可能利用了GDI+库来加载和显示图像。 2. 图片缩放:用户可以调整图片的大小,这一特性使得查看大尺寸图片更为便捷。这需要VB中的图形对象和事件处理来实现缩放功能,...

    vb.net获取摄像头图片并保存

    然后可以使用`System.Drawing`库中的`Image.Save()`方法将这个`Bitmap`保存为本地图片文件,常见的格式有JPEG、PNG等。 5. **关闭摄像头** 当不再需要摄像头时,调用`VideoCaptureDevice.Stop()`方法来停止视频流...

    图片格式批量转换,Delphi源码版..rar

    3. 图片格式转换:每个图像处理库都有相应的函数或方法用于图片格式的转换,如Graphics32库中的LoadImage和SaveImage,或者是Vcl.Imaging的 TJPEGImage 和 TPNGImage 类,通过它们可以加载和保存不同格式的图像。...

    提取文件夹中图片工具

    这种功能在处理大量图片或者需要整理图片库时非常有用,例如在设计工作、摄影后期或数据备份场景中。 基于这个描述,我们可以深入探讨几个相关的IT知识点: 1. 图片文件格式:PNG和JPG是两种常见的图片文件格式。...

    QT中通过opencv显示图片

    在本篇文章中,我们将深入探讨如何在QT环境中利用OpenCV库来实现图像的显示功能。这一主题对于希望在跨平台应用程序开发中集成图像处理能力的开发者来说至关重要。下面的内容将覆盖必要的理论背景、代码实现步骤以及...

    C#图片比较

    2. **图像检索**:基于相似度检索图片库中的图片。 3. **质量控制**:生产线上产品外观的一致性检测。 4. **人脸识别**:辅助人脸识别系统进行身份验证。 #### 六、总结 本文详细介绍了如何使用C#实现图片比较的...

    DevIL 用于opengl加载图片资源

    4. `CREDITS`: 可能包含了对其他项目或个人的致谢,列举了库中使用的第三方组件或代码。 5. `README`: 是一个简要的使用指南或项目介绍,可能包含编译和安装DevIL的步骤。 6. `Libraries.txt`: 列出了库依赖的其他...

    Python Requests库详解

    下面列举一些使用Requests库进行网络请求时常用的代码示例: ```python import requests # 发送GET请求 response = requests.get('***') # 打印响应内容 print(response.text) # 发送POST请求 data = {'key': '...

    python源码图片批量处理器.rar

    在批量处理图片时,PIL的Image模块特别有用,因为它允许我们遍历文件夹中的所有图像并进行操作。 批量处理通常涉及到循环和文件操作。在Python中,我们可以使用os和os.path模块来列举目录中的文件,然后对每个文件...

    Amazon免费图片及外链制作网站汇总.pdf

    Superfamous、New Old Stock和DotSpin提供独特的图片库;Death to the Stock Photo需要注册,但每月会发送照片到用户的邮箱;Pixabay包含大量多样化的图片;Function虽然图片数量不多,但质量上乘;...

    可牛图片处理系统。。

    2. 滤镜特效:内置丰富的滤镜库,包括复古、黑白、冷色调、暖色调等多种风格,一键应用即可改变图片整体氛围,提升艺术感。 3. 文字水印:可以在图片上添加文字或自定义水印,用于版权保护或个性化装饰,同时提供...

    java图片浏览小程序(源码+文档)

    9. 文件系统操作:通过"当前目录下所有文件名汇总列表"这个文件名,我们可以推测程序可能具有扫描和列举指定目录下所有文件的能力,这涉及到文件系统的操作和遍历。 通过学习和实践这样的项目,学生不仅可以提升...

    js实现图片的多种效果

    在JavaScript的世界里,实现图片...这里仅列举了部分JavaScript实现图片效果的方法,实际应用中还可以结合其他技术如Canvas、WebGL等创造更多可能。在实际开发中,根据项目需求和性能考虑,可以选择最合适的实现方式。

    python常用的库大全

    本文将详细列举并介绍Python中常见的一些官方库与第三方库,涵盖文本处理、文件管理等多个方面。 #### 文本处理库 1. **Chardet**:字符编码探测器,能够自动检测文本、网页、XML等文件的编码方式,对于处理来自不...

Global site tag (gtag.js) - Google Analytics