zoukankan      html  css  js  c++  java
  • ALAsset和ALAssetRepresentation详解

     

    转载自  http://blog.csdn.net/kingsley_cxz/article/details/9168583

    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]);



  • 相关阅读:
    IDEA 中直接连接远程服务器
    浙江大学软件学院2020年保研上机
    PAT甲级近五年题一览表
    浙江大学计算机与软件学院2021年考研复试上机
    浙江大学计算机与软件学院2019年保研上机
    PAT(甲级)2021年春季考试
    PAT(甲级)2020年冬季考试
    PAT(甲级)2020年秋季考试
    PAT(甲级)2020年春季考试
    PAT(甲级)2019年冬季考试
  • 原文地址:https://www.cnblogs.com/allanliu/p/4213326.html
Copyright © 2011-2022 走看看