选择相册或者拍照
*进入相册方法
-(void)loadImagePicker
{
UIActionSheet*sheet =nil;
if([UIImagePickerControllerisSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
sheet = [[UIActionSheetalloc]initWithTitle:nil
delegate:self
cancelButtonTitle:@"取消"
destructiveButtonTitle:nil
otherButtonTitles:@"拍照",@"从相册选择",nil];
}else{
sheet = [[UIActionSheetalloc]initWithTitle:nil
delegate:self
cancelButtonTitle:@"取消"
destructiveButtonTitle:nil
otherButtonTitles:@"从相册选择",nil];
}
[sheetshowInView:self.view];
}
选择照片后压缩图片
/**
*压缩图片尺寸
*
*@param image图片
*@param newSize大小
*
*@return真实图片
*/
- (UIImage*)imageWithImageSimple:(UIImage*)image scaledToSize:(CGSize)newSize
{
UIGraphicsBeginImageContext(newSize);
[imagedrawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage =UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
returnnewImage;
}
选择相片或照相机的代理方法
- (void)actionSheet:(UIActionSheet*)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
NSString*title = [actionSheetbuttonTitleAtIndex:buttonIndex];
if([titleisEqualToString:@"拍照"]) {
UIImagePickerController*picker = [[UIImagePickerControlleralloc]init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeCamera;
[selfpresentViewController:pickeranimated:YEScompletion:nil];
}elseif([titleisEqualToString:@"从相册选择"]) {
UIImagePickerController* picker = [[UIImagePickerControlleralloc]init];
picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate=self;
[selfpresentViewController:pickeranimated:YEScompletion:nil];
}
}
选择图片后的代理方法
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info {
UIImage*avatar = info[UIImagePickerControllerOriginalImage];
//处理完毕,回到个人信息页面
[pickerdismissViewControllerAnimated:YEScompletion:NULL];
//判断图片是不是png格式的文件
if(UIImagePNGRepresentation(avatar)) {
//返回为png图像。
UIImage*imagenew = [selfimageWithImageSimple:avatarscaledToSize:CGSizeMake(200,200)];
self.imageData=UIImagePNGRepresentation(imagenew);
//self.header_icon.image = imagenew;
}else{
//返回为JPEG图像。
UIImage*imagenew = [selfimageWithImageSimple:avatarscaledToSize:CGSizeMake(200,200)];
self.imageData=UIImageJPEGRepresentation(imagenew,0.8);
//self.header_icon.image = imagenew;
}
//#warning参数设置
NSString*endpoint =@"oss-cn-shanghai.aliyuncs.com";
//@"oss-cn-shanghai.aliyuncs.com/futuredf";
//明文设置secret的方式建议只在测试时使用,更多鉴权模式参考后面链接给出的官网完整文档的`访问控制`章节
id credential = [[OSSPlainTextAKSKPairCredentialProvideralloc]initWithPlainTextAccessKey:kAliAccessKeysecretKey:kAliSecretKey];
client= [[OSSClientalloc]initWithEndpoint:endpointcredentialProvider:credential];
OSSPutObjectRequest* put = [OSSPutObjectRequestnew];
// required fields
//#warning参数设置
put.bucketName=kAliBucketName;
//如果需要上传到指定文件夹 在objectKeys做文章
NSString*objectKeys = [NSStringstringWithFormat:@"weilaitongfu/%@/%@/FaceUrl%@.jpg",kFace,kUserData.userId,[selfgetCurrentTimestamp]];
NSLog(@"2017年07月05日20:09:51%@", objectKeys);
put.objectKey= objectKeys;
//put.uploadingFileURL = [NSURL fileURLWithPath:@"futuredf"];
put.uploadingData=self.imageData;
put.uploadProgress= ^(int64_tbytesSent,int64_ttotalByteSent,int64_ttotalBytesExpectedToSend) {
NSLog(@"%lld, %lld, %lld", bytesSent, totalByteSent, totalBytesExpectedToSend);
};
OSSTask* putTask = [clientputObject:put];
[putTaskcontinueWithBlock:^id(OSSTask*task) {
task = [clientpresignPublicURLWithBucketName:kAliBucketName
withObjectKey:objectKeys];
NSLog(@"objectKey: %@", put.objectKey);
if(!task.error) {
[selfrequesFaceImg:task.result];
NSLog(@"upload object success!=====%@",task.result);
}else{
NSLog(@"upload object failed, error: %@", task.error);
}
returnnil;
}];
}
如果批量的话用循环
NSOperationQueue*queue = [[NSOperationQueuealloc]init];
queue.maxConcurrentOperationCount= images.count;
for(inti =0; i
UIImage*image = images[i];
if(image) {
WS(weakSelf);
[[DPAlertHelpershareHelper]hideActivityIndicator];
[[DPAlertHelpershareHelper]showHUDAddedTo:self.viewcolor:[UIColorlightGrayColor]];
NSBlockOperation*operation = [NSBlockOperationblockOperationWithBlock:^{
//任务执行
OSSPutObjectRequest* put = [OSSPutObjectRequestnew];
put.bucketName=kAliBucketName;
NSString*str = [[NSStringalloc]init];
if(i ==0) {
str =kFront;
}elseif(i ==1){
str =kBack;
}elseif(i ==2){
str =kHand;
}
NSString*objectKeys = [NSStringstringWithFormat:@"weilaitongfu/%@/%@/%@_%@.jpg",krealName1,kUserData.userId,str,[weakSelfgetCurrentTimestamp]];
put.objectKey= objectKeys;
NSData*data =UIImageJPEGRepresentation(image,0.3);
put.uploadingData= data;
OSSTask* putTask = [clientputObject:put];
[putTaskwaitUntilFinished];//阻塞直到上传完成
[putTaskcontinueWithBlock:^id(OSSTask*task) {
task = [clientpresignPublicURLWithBucketName:kAliBucketName
withObjectKey:objectKeys];
NSLog(@"objectKey: %@", put.objectKey);
dispatch_async(dispatch_get_main_queue(), ^{
[[DPAlertHelpershareHelper]hideActivityIndicator];
});
if(!task.error) {
[self.imgArraddObject:task.result];
if(i ==2) {
[weakSelfrequesImg:weakSelf.imgArr];
}
//NSLog(@"upload object success!=====%@",task.result);
}else{
NSLog(@"upload object failed, error: %@", task.error);
}
returnnil;
}];
}];
if(queue.operations.count!=0) {
[operationaddDependency:queue.operations.lastObject];
}
[queueaddOperation:operation];
}
}
网友评论