iOS 获取相册原图
来源:互联网 发布:淘宝旗袍模特周婷资料 编辑:程序博客网 时间:2024/04/28 21:59
因为软件需要,需要上传iOS相册原图,但是网上的资料也找了很多。获取到原图的话,我有两个思路,一个是根据ALAssetsLibrary里的ALAssetRepresentation:
ALAssetRepresentation *assetRep = [asset defaultRepresentation];
CGImageRef imgRef = NULL;
imgRef = [assetRep fullResolutionImage];
orientation = [assetRep orientation];
UIImage* image = [UIImage imageWithCGImage:imgRef scale:1.0f orientation:orientation];
data = UIImageJPEGRepresentation(image, 1.0f);
注意UIImageJPEGRepresentation , 后面的压缩比例,设为1.0是不压缩,但是这样转化过来的NSdata,都会比原图大,翻查了很多资料,因为fullResolutionImage 是高清原图,没经过处理的图片,这一种方法不行了。
第二个思路,获取到图片的相册原始路径 所以我找到了这个,NSURL *URL=[dict objectForKey:@"UIImagePickerControllerReferenceURL"]; 不管我怎么去拼接都无法获取到一个正确的路径,查了很多资料,都说iOS的机制是这样的,获取到的也只是相对路径所以这个思路也不行了
正确方法:
NSURL *imageAssetUrl = [dict objectForKey:UIImagePickerControllerReferenceURL];
ALAssetsLibrary *assetLibrary=[[ALAssetsLibrary alloc] init];
[assetLibrary assetForURL:imageAssetUrl resultBlock:^(ALAsset *asset) {
ALAssetRepresentation* representation = [asset defaultRepresentation];
// 创建一个buffer保存图片数据
uint8_t *buffer = (Byte*)malloc(representation.size);
NSUInteger length = [representation getBytes:buffer fromOffset: 0.0 length:representation.size error:nil];
// 将buffer转换为NSData object,然后释放buffer内存
//这边获取到的NSdata 转化为图片后,参数信息,和占用内存都是一样了的,
data = [[NSData alloc] initWithBytesNoCopy:buffer length:representation.size freeWhenDone:YES];
//将对象存储到 NSUserDefaults 中 这边不用看 我是将多张图片写入本地沙盒
NSUserDefaults *user = [NSUserDefaults standardUserDefaults];
int last = [[user objectForKey:@"i"] intValue];
NSLog(@"%d",last);
int now=0;
if (last==0) {
last=1;
}
now=last+1;
[user setInteger:now forKey:@"i"];
filePath = [NSString stringWithFormat:@"%@/%@%03d.%@", docsPath, CDV_PHOTO_PREFIX, last++, @"jpg"];
NSLog(@"++%@",filePath);
[data writeToFile:filePath atomically:NO];
[resultStrings addObject:filePath];
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OKmessageAsArray:resultStrings];
if (x==info.count-1) {
//完成
[self bbb:result];
}
} failureBlock:^(NSError *error) {
//失败的处理
}];
写的不明白的问题 可以加我的QQ 讨论 1627737545 (骚扰勿加,谢谢)
- iOS 获取相册原图
- 用ALAsset获取相册原图
- iOS 获取系统相册
- iOS获取相册工具
- iOS 获取系统相册
- 获取相册照片和获取拍照照片原图(不被压缩)
- iOS获取相册图片视频
- iOS相册获取那些事
- IOS获取系统相册图片
- iOS AssetsLibrary和Photos的使用总结(2): 原图获取
- iOS模拟器获取相册可以真机获取相册失败
- 获取原图宽高
- iOS 访问手机相册以及从相册获取相片
- iOS开发获取系统相册资源,自定义相册(PhotoKit)
- iOS UIImagePickerController从相册获取图片
- [IOS]从相册或相机获取图片
- 获取IOS系统相册中的照片
- iOS 获取图片(拍照,图库,相册)
- java中System.getProperty()方法详解
- 离散题目13 判断是否自反
- 攻击方式学习之(3)
- 高冷的 WebGL
- C++ odac ado 报错
- iOS 获取相册原图
- logback的简单使用
- Essential Studio for ASP.NET Web Forms发布2017 v2,新增自定义树形网格工具栏等
- Threejs 快速入门
- Docker桥接网络原理图分享和pipework简单配置
- FRP配置部署
- SpringSecurity学习笔记一
- 常用操作 拖动旋转 镜像等
- 验证码识别处理--基于java(二)