ALAsset和ALAssetRepresentation详解
博客专区 > Daniel_s 的博客 > 博客详情
ALAsset和ALAssetRepresentation详解
Daniel_s 发表于2年前
ALAsset和ALAssetRepresentation详解
  • 发表于 2年前
  • 阅读 42
  • 收藏 1
  • 点赞 2
  • 评论 0

【腾讯云】新注册用户域名抢购1元起>>>   

ALAsset类代表相册中的每个资源文件,可以通过它获取资源文件的相关信息还能修改和新建资源文件,ALAssetRepresentation类代表相册中每个资源文件的详细信息,可以通过它获取资源的大小,名字,路径等详细信息。

 

                        //通过ALAsset获取相对应的资源,获取图片的等比缩略图,原图的等比缩略
                        CGImageRef ratioThum = [asset aspectRatioThumbnail];
                        //获取相片的缩略图,该缩略图是相册中每张照片的poster图
                        CGImageRef thum = [asset thumbnail];
                        UIImage* rti = [UIImage imageWithCGImage:ratioThum];
                        UIImage* ti = [UIImage imageWithCGImage:thum];
                        UIImageView* v1 = [[UIImageView alloc]initWithFrame:CGRectMake(20, 100, 120, 200)];
                        v1.image = rti;
                        v1.contentMode = UIViewContentModeScaleAspectFit;
                        UIImageView* v2 = [[UIImageView alloc]initWithFrame:CGRectMake(180, 100, 120, 200)];
                        v2.image = ti;
                        v2.contentMode = UIViewContentModeScaleAspectFit;
                        [self.view addSubview:v1];
                        [self.view addSubview:v2];

 

左侧为等比缩略图效果,右侧为poster效果的缩略图

                        UIImage* ni = [UIImage imageNamed:@"new.png"];
                        //修改指定路径的图片资源内容,替换掉原来的内容
                        [asset setImageData:UIImageJPEGRepresentation(ni, 1.0) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
                            NSLog(@"new:%@",assetURL);
                        }];
                        //根据给定的图片内容,重新生成一张新图
                        [asset writeModifiedImageDataToSavedPhotosAlbum:UIImageJPEGRepresentation(ni, 1.0) metadata:nil completionBlock:^(NSURL *assetURL, NSError *error) {
                            NSLog(@"new:%@",assetURL);
                        }];
                        //获取资源图片的详细资源信息
                        ALAssetRepresentation* representation = [asset defaultRepresentation];
                        //获取资源图片的长宽
                        CGSize dimension = [representation dimensions];
                        //获取资源图片的高清图
                        [representation fullResolutionImage];
                        //获取资源图片的全屏图
                        [representation fullScreenImage];
                        //获取资源图片的名字
                        NSString* filename = [representation filename];
                        NSLog(@"filename:%@",filename);
                        //缩放倍数
                        [representation scale];
                        //图片资源容量大小
                        [representation size];
                        //图片资源原数据
                        [representation metadata];
                        //旋转方向
                        [representation orientation];
                        //资源图片url地址,该地址和ALAsset通过ALAssetPropertyAssetURL获取的url地址是一样的
                        NSURL* url = [representation url];
                        NSLog(@"url:%@",url);
                        //资源图片uti,唯一标示符
                        NSLog(@"uti:%@",[representation UTI]);

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 11
博文 155
码字总数 4133
×
Daniel_s
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: