文档章节

图片的读取

fans1991
 fans1991
发布于 2013/11/13 09:32
字数 407
阅读 129
收藏 0

一般的实现是使用UIImagePickerController控件,然后实现UIImagePickerControllerDelegate里面的两个回调方法。

- (void)button2Pressed:(id)sender

{ UIImagePickerController* vc = [[UIImagePickerController alloc] init]; vc.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; vc.delegate = self; [self presentViewController:vc animated:YES completion:nil]; [vc release]; } #pragma mark - UIImagePickerControllerDelegate - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { // 图片在这里 UIImage* image = [info objectForKey:UIImagePickerControllerOriginalImage]; [self dismissViewControllerAnimated:YES completion:nil]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self dismissViewControllerAnimated:YES completion:nil]; }

使用新的方法,首先做以下两点: 1.引入头文件:#import (尖括号)AssetsLibrary/AssetsLibrary.h(尖括号) 2.在工程中引入库:AssetsLibrary.framework 具体代码如下:

// 打印信息,仅做演示
- (void)printALAssetInfo:(ALAsset*)asset
{
    //取图片的url
    NSString *photoURL=[NSString stringWithFormat:@"%@",asset.defaultRepresentation.url];
    NSLog(@"photoURL:%@", photoURL);
    // 取图片
    UIImage* photo = [UIImage imageWithCGImage:asset.defaultRepresentation.fullScreenImage];
    NSLog(@"PHOTO:%@", photo);
    NSLog(@"photoSize:%@", NSStringFromCGSize(photo.size));
    // 取图片缩图图
    UIImage* photoThumbnail = [UIImage imageWithCGImage:asset.thumbnail];
    NSLog(@"PHOTO2:%@", photoThumbnail);
    NSLog(@"photoSize2:%@", NSStringFromCGSize(photoThumbnail.size));
}

-(void)loadImageFromPhotoLibrary
{
    // 为了防止界面卡住,可以异步执行
    dispatch_async(dispatch_get_main_queue(), ^{
        // 获取相册每个组里的具体照片
        ALAssetsGroupEnumerationResultsBlock groupEnumerAtion = ^(ALAsset *result, NSUInteger index, BOOL *stop){
            if (result!=nil) {
                // 检查是否是照片,还可能是视频或其它的
                // 所以这里我们还能类举出枚举视频的方法。。。
                if ([[result valueForProperty:ALAssetPropertyType] isEqualToString:ALAssetTypePhoto]) {
                    [self printALAssetInfo:result];
                }
            }
        };
        //获取相册的组
        ALAssetsLibraryGroupsEnumerationResultsBlock groupsEnumeration = ^(ALAssetsGroup* group, BOOL* stop){
            if (group!=nil) {
                NSString *groupInfo=[NSString stringWithFormat:@"%@",group];
                NSLog(@"GROUP INFO:%@",groupInfo);

                [group enumerateAssetsUsingBlock:groupEnumerAtion];
            }
        };

        ALAssetsLibraryAccessFailureBlock failureblock = ^(NSError *error){
            // 相册访问失败的回调,可以打印一下失败原因
            NSLog(@"相册访问失败,ERROR:%@", [error localizedDescription]);
        };

        ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
        [library enumerateGroupsWithTypes:ALAssetsGroupAll
                               usingBlock:groupsEnumeration
                             failureBlock:failureblock];
        [library release];     
    }); 

}

// 同上面的原理,我们再做一个根据URL取图片及缩略图的方法
- (void)loadImageForURL:(NSURL*)photoUrl
{
    ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
    [assetLibrary assetForURL:photoUrl
                  resultBlock:^(ALAsset *asset)
     {
         [self printALAssetInfo:asset];
    }
                 failureBlock:^(NSError *error)
     {
        NSLog(@"error=%@",error);
    }];
}
原文连接:http://ilovedev.github.io/blog/2013/11/03/bu-shi-yong-uiimagepickercontrollershi-xian-du-qu-xiang-ce-tu-pian-de-fang-fa/

本文转载自:http://ilovedev.github.io/blog/2013/11/03/bu-shi-yong-uiimagepickercontrollershi-xian-du-qu-xiang...

上一篇: cocoaPods
fans1991
粉丝 2
博文 5
码字总数 1002
作品 0
厦门
程序员
私信 提问
前端战五渣学前端——FileReader预览本地文件

距离上一篇博客将近一个半月了,这一个多月有点烦躁,静不下心来学习,也不知道为什么,玩的也不算太好,还感冒。可能是天气热了吧,有点点躁动。上周看了《哪吒——魔童降世》还不错,还看了...

戈德斯文
07/31
0
0
Java图片操作 --- 图片的读取、绘制、缩放、裁剪、保存

本文链接: http://blog.csdn.net/xietansheng/article/details/78453570 1. 读取图片 方法一: 通过 java.awt.Toolkit 工具类来读取本地、网络 或 内存中 的 图片(支持 GIF、JPEG 或 PNG) ...

xietansheng
2017/11/05
0
0
Facebook图片存储系统Haystack——存小文件,本质上是将多个小文件合并为一个大文件来降低io次数,meta data里存偏移量

转自:http://yanyiwu.com/work/2015/01/04/Haystack.html 一篇14页的论文Facebook-Haystack, 看完之后我的印象里就四句话: 因为【传统文件系统的弊端】 因为【缓存无法解决长尾问题】 所以...

桃子红了呐
2017/11/16
0
0
2017.11.15-学习笔记:简单实现图片预览及拖拽图片预览

前言:图片上传是一个普通不过的功能,而图片预览就是就是上传功能中必不可少的子功能了,为了减轻后台服务器的工作量,这里使用HTML5的来实现图片预览。 FileReader 1.构造方式: 2.属性(这...

演员小新
2017/11/15
0
0
Unity3D Web 从服务器下载图片 读取视频文本

转载自风宇冲Unity3D教程学院 往wamp路径下的www文件夹下拖入一张图片,这里使用的是cat.jpg, 输入http://localhost/cat.jpg,可以查看到图片如下后, 新建unity工程,创建一个球体,创建一个...

qq_40795166
2018/04/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot2.0 maven打包分离lib,resources

springboot将工程打包成jar包后,会出现获取classpath下的文件出现测试环境正常而生产环境文件找不到的问题,这是因为 1、在调试过程中,文件是真实存在于磁盘的某个目录。此时通过获取文件路...

陈俊凯
今天
5
0
BootStrap

一、BootStrap 简洁、直观、强悍的前端开发框架,让web开发更加迅速、简单 中文镜像网站:http://www.bootcss.com 用于开发响应式布局、移动设备优先的WEB项目 1、使用boot 创建文件夹,在文...

wytao1995
今天
9
0
小知识:讲述Linux命令别名与资源文件的区别

别名 别名是命令的快捷方式。为那些需要经常执行,但需要很长时间输入的长命令创建快捷方式很有用。语法是: alias ppp='ping www.baidu.com' 它们并不总是用来缩短长命令。重要的是,你将它...

老孟的Linux私房菜
今天
8
0
《JAVA核心知识》学习笔记(6. Spring 原理)-5

它是一个全面的、企业应用开发一站式的解决方案,贯穿表现层、业务层、持久层。但是 Spring 仍然可以和其他的框架无缝整合。 6.1.1. Spring 特点 6.1.1.1. 轻量级 6.1.1.2. 控制反转 6.1.1....

Shingfi
今天
7
0
Excel导入数据库数据+Excel导入网页数据【实时追踪】

1.Excel导入数据库数据:数据选项卡------>导入数据 2.Excel导入网页数据【实时追踪】:

东方墨天
今天
10
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部