iOS相册访问 ALAssetsLibrary(获取到相册的图片)+ 图片格式

21 篇文章 0 订阅
//通过创建ALAssetsLibrary 的实例可以访问系统Photos里的图片与视频。这个库包括了保存的图片,从iTunes导入的和从其他设备里面导入的图片,你可以访问所有的分类和保存图片视频。

//用普通的alloc和init就可以创建ALAssetsLibrary的实例,所有你从这个实例中获取得到的对象的生命周期和ALAssetsLibrary这个实例的生命周期一致

//大多数的函数,都是异步处理的,所有的成功失败的回调都是使用block传入的,因为有可能需要用户点击授权。在iOS4至iOS5的版本中,会提示要访问用户的地理位置。到iOS6会提示访问用户的照片信息,这一点需要注意。

//可以遍历Group,创建Group,创建图片,添加信息等,可以进行大多数的访问与操作。


  ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
            [library assetForURL:[dic objectForKey:UIImagePickerControllerReferenceURL]
                     resultBlock:^(ALAsset *asset)
             {
                 ALAssetRepresentation *representation = [asset defaultRepresentation];
                 CGImageRef imgRef = [representation fullResolutionImage];
                 UIImage *image = [UIImage imageWithCGImage:imgRef
                                                    scale:representation.scale
                                              orientation:(UIImageOrientation)representation.orientation];
                 NSData * data = UIImageJPEGRepresentation(image, 0.5);                
 
                //可以通过valueForProperty获取到图片的信息,包括类型, Location , 时长,方向,日期,格式 , URL地址。

                NSString * nsALAssetPropertyType = [ asset valueForProperty:ALAssetPropertyType ] ;

                NSString * nsALAssetPropertyLocation = [ asset valueForProperty:ALAssetPropertyLocation ] ;

                NSString * nsALAssetPropertyDuration = [ asset valueForProperty:ALAssetPropertyDuration ] ;

                NSString * nsALAssetPropertyOrientation = [ asset valueForProperty:ALAssetPropertyOrientation ] ;

                NSString * nsALAssetPropertyDate = [ asset valueForProperty:ALAssetPropertyDate ] ;

                NSString * nsALAssetPropertyRepresentations = [ asset valueForProperty:ALAssetPropertyRepresentations ] ;

                NSString * nsALAssetPropertyURLs = [ asset valueForProperty:ALAssetPropertyURLs ] ;

                NSString * nsALAssetPropertyAssetURL = [ asset valueForProperty:ALAssetPropertyAssetURL ] ;



             }failureBlock:^(NSError *error){
                 NSLog(@"couldn't get asset: %@", error);
             }
             ];





//判断图片格式
- (NSString *)typeForImageData:(NSData *)data {

    uint8_t c;

    [data getBytes:&c length:1];

    switch (c) {

    case 0xFF:

        return @"image/jpeg";

    case 0x89:

        return @"image/png";

    case 0x47:

        return @"image/gif";

    case 0x49:

    case 0x4D:

        return @"image/tiff";

    }

    return nil;

}



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值