IOS 文档翻译计划之ALAssetLibrary

ALAssetLibrary

主要访问用户媒体库的资源
你可以使用ALAsset Library 去访问ios系统的图片和视频
注意:ALAsset Library在9.0之后被废弃,在 ios8.0和以后的版本提供了更好的框架来处理用户的照片库。

ALAsset

ALAsset对象标识一个系统的图片或者视频对象。

- (id)valueForProperty:(NSString )property;
返回property 对象的值
Property Keys

  • ALAssetPropertyType – 资源的类型 包括(ALAssetTypePhoto,ALAssetTypeVideo,ALAssetTypeUnknown)

  • ALAssetPropertyLocation – 资源的位置信息,返回cllocation对象

  • ALAssetPropertyDuration – 视频的时长 返回 nsnumber 对象,图片返回ALErrorInvalidProperty

  • ALAssetPropertyOrientation – 资源的方向

  • ALAssetPropertyDate – 资源的创建时间

  • ALAssetPropertyRepresentations --资源的表现形式(RAW,JEPG 等)

  • ALAssetPropertyURLs – 资源的位置标识 urls

  • ALAssetPropertyAssetURL – 资源的位置标识 url

@property(nonatomic, readonly, getter=isEditable) BOOL editable;
标识 alasset 是否可编辑

@property(nonatomic, readonly) ALAsset *originalAsset;
asset 的原始版本

- (ALAssetRepresentation *)defaultRepresentation;
返回默认的 asset 描述对象

- (ALAssetRepresentation *)representationForUTI:(NSString *)representationUTI;
返回给定ALAssetRepresentation类型的对象。

- (CGImageRef)thumbnail;
返回对象的缩略图

- (CGImageRef)aspectRatioThumbnail;
返回一个宽高比不变的缩略图

- (void)setImageData:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;
用新的 imageDate 替换 asset 对象的图像数据

- (void)setVideoAtPath:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;
用新的 URL 的视频数据替换 asset 对象的视频数据

- (void)writeModifiedImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;
将图像数据保存到相册

- (void)writeModifiedVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;
将指定路径的视频保存到相册

ALAssetRepresentation

描述 asset 的一个类型的对象,一个 asset 可能包含多个 presentation 对象,如果摄像头提供 RAW 和 JPEG 类型的图片,则 asset 将有两个presentation,一个 RAW 和 JPEG

- (CGImageRef)CGImageWithOptions:(NSDictionary *)options;
返回完整的 CGImage 对象。

- (CGImageRef)fullResolutionImage;
返回asset的CGImage表示形式。

- (CGImageRef)fullScreenImage;
返回适合于显示全屏的表示形式的CGImage。

- (ALAssetOrientation)orientation;
返回Representation的方向
(ALAssetOrientationUp,
ALAssetOrientationDown,
ALAssetOrientationLeft,
ALAssetOrientationRight,
ALAssetOrientationUpMirrored,
ALAssetOrientationDownMirrored,
ALAssetOrientationLeftMirrored,
ALAssetOrientationRightMirrored。)

- (float)scale;
返回Representation的缩放比例

- (CGSize)dimensions;
返回Representation的维度

- (NSString *)filename;
返回在磁盘上的路径的文件名

- (long long)size;
返回文件的字节大小

- (NSUInteger)getBytes:(uint8_t *)buffer fromOffset:(long long)offset length:(NSUInteger)length error:(NSError **)error;
将指定范围的字节复制到缓冲区

- (NSString *)UTI;
返回Representation的UTI

- (NSDictionary *)metadata;
返回Representation元数据字典的字典。

- (NSURL *)url;
返回Representation的唯一路径url

ALAssetsFilter

ALAssetsFilter封装了文件筛选的标准

+ (ALAssetsFilter *)allAssets;
返回一个提供所有 asset 里面的筛选器在 assets group 里

+ (ALAssetsFilter *)allPhotos;
返回一个提供所有照片里面的筛选器在 assets group 里

+ (ALAssetsFilter *)allVideos;
返回一个提供所有视频里面的筛选器在 assets group 里

ALAssetsGroup

ALAssetsGroup 对象表示相册应用里面所有对象的有序集合,对象的数序与用户在照片看到的是相同的,一个 asset 可以属于多个 groups ALAssetsGroup相当于相簿 asset 是一个图片或者视频对象

AssetsGroup 是通过iTunes同步的,创建它是为了保存用户保存的照片,或者是在导入相机时创建的。您可以使用ALAssetsLibrary类将图像或视频保存到保存的照片组中,从而间接修改保存的照片组。

- (void)enumerateAssetsUsingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;
异步返回 group 里面的每一个 asset

- (void)enumerateAssetsWithOptions:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;

异步返回 group 里面的每一个 asset option (
NSEnumerationConcurrent,NSEnumerationReverse)

- (void)enumerateAssetsAtIndexes:(NSIndexSet *)indexSet options:(NSEnumerationOptions)options usingBlock:(ALAssetsGroupEnumerationResultsBlock)enumerationBlock;

根据指定的 indexset 异步返回 group 里面的每一个 asset

- (BOOL)addAsset:(ALAsset *)asset;

在相簿里添加一个已经存在的 asset对象

@property(nonatomic, readonly, getter=isEditable) BOOL editable;
相簿是否可以编辑组。

- (NSInteger)numberOfAssets;
相簿里对象的数量

- (void)setAssetsFilter:(ALAssetsFilter *)filter;
设置相簿的过滤条件

- (id)valueForProperty:(NSString *)property;
返回相簿指定属性的值

- (CGImageRef)posterImage;
返回相册的海报图

typedef void (^ALAssetsGroupEnumerationResultsBlock)(ALAsset *result, NSUInteger index, BOOL *stop);

返回的对象的的块方法

Group Property Names
ALAssetsGroupPropertyName
ALAssetsGroupPropertyType
ALAssetsGroupPropertyPersistentID
ALAssetsGroupPropertyURL

ALAssetsLibrary

初始化方法
ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];
我是分割线--------
+ (ALAuthorizationStatus)authorizationStatus;
返回相册的访问权限
ALAuthorizationStatusNotDetermined
ALAuthorizationStatusRestricted
ALAuthorizationStatusDenied
ALAuthorizationStatusAuthorized

+ (void)disableSharedPhotoStreamsSupport;
禁用共享照片流通知和检索

- (void)assetForURL:(NSURL *)assetURL resultBlock:(ALAssetsLibraryAssetForURLResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;
调用指定的 URL 资源

- (void)enumerateGroupsWithTypes:(ALAssetsGroupType)types usingBlock:(ALAssetsLibraryGroupsEnumerationResultsBlock)enumerationBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;

调用指定相册的返回的资源

- (void)writeVideoAtPathToSavedPhotosAlbum:(NSURL *)videoPathURL completionBlock:(ALAssetsLibraryWriteVideoCompletionBlock)completionBlock;

保存由给定URL标识的视频到已保存的相册。

- (BOOL)videoAtPathIsCompatibleWithSavedPhotosAlbum:(NSURL *)videoPathURL;
判定指定 URL 的视频是否可以保存到相册

- (void)writeImageToSavedPhotosAlbum:(CGImageRef)imageRef orientation:(ALAssetOrientation)orientation completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;
将给定的图像保存到已保存的相册。

- (void)writeImageDataToSavedPhotosAlbum:(NSData *)imageData metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;
将给定的图像数据写入相册。

- (void)writeImageToSavedPhotosAlbum:(CGImageRef)imageRef metadata:(NSDictionary *)metadata completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock;
将给定的图像数据写入相册。

- (void)addAssetsGroupAlbumWithName:(NSString *)name resultBlock:(ALAssetsLibraryGroupResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;
创建一个相簿

- (void)groupForURL:(NSURL *)groupURL resultBlock:(ALAssetsLibraryGroupResultBlock)resultBlock failureBlock:(ALAssetsLibraryAccessFailureBlock)failureBlock;

根据相簿的 url 返回一个相簿的结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值