zoukankan      html  css  js  c++  java
  • 修改单张图片上传到服务器

    #pragma mark - changeUserPhoto
    - (void)changeUserPhoto {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消"
                                                   destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从手机相册选择", nil];
        actionSheet.tag = 120;
       
        [actionSheet showInView:self.view];
    }


    #pragma mark - actionSheet
    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
    {
        if (actionSheet.tag == 120) {
            if (buttonIndex == 0) //拍照
            {
                [self takePhoto];
            }
            else if (buttonIndex == 1) //打开本地相册
            {
                [self openLocalPhoto];
            }
        }
    }

    #pragma mark - TakePhoto
    /**
     *  开始拍照
     */
    - (void)takePhoto
    {
        UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
       
        if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])
        {
            UIImagePickerController *picker = [[UIImagePickerController alloc] init];
            picker.delegate = self;
            picker.allowsEditing = YES;
            picker.sourceType = sourceType;
            [self presentViewController:picker animated:YES completion:nil];
        } else
        {
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示"
                                                            message:@"抱歉,你的设备不支持该功能!"
                                                           delegate:self
                                                  cancelButtonTitle:@"确定"
                                                  otherButtonTitles:nil];
            [alert show];
            return;
        }
    }

    #pragma mark - openLibrary
    // 打开本地相册

    - (void)openLocalPhoto
    {
        UIImagePickerController *picker = [[UIImagePickerController alloc] init];
        picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        picker.delegate  = self;
        picker.allowsEditing = YES;
        [self presentViewController:picker animated:YES completion:nil];
    }

    - (void) imagePickerController: (UIImagePickerController*) reader  didFinishPickingMediaWithInfo: (NSDictionary*) info {         NSString *strType = [info objectForKey:UIImagePickerControllerMediaType];         if ([strType isEqualToString:@"public.image"]) //当选择的类型是图片         {             UIImage *image = [info objectForKey:@"UIImagePickerControllerEditedImage"]; //先把图片转成NSData             NSLog(@"image = %@", image);             [reader dismissViewControllerAnimated:YES completion:nil]; //关闭相册界面             //压缩图片             UIImage *scalImage = [self scaleFromImage:image];             imageView.image = scalImage;             //保存到本地           NSString *strfileName = [self saveImage:scalImage];             //上传头像             NSString *strUrl = [NSString stringWithFormat:@"%@", @"http://192.168.1.108:8080/resources/user/"];             strUrl = [strUrl stringByAppendingString:@"headimg/"];             strUrl = [strUrl stringByAppendingString:@"13061622013"];             NSURL *url = [NSURL URLWithString:strUrl];             ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];             [request setDelegate:self];                         [request addRequestHeader:@"Content-Type" value:@"application/json; encoding=utf-8"];             [request addRequestHeader:@"Accept" value:@"application/json"];             [request setFile:strfileName forKey:@"headImg"];             [request setRequestMethod:@"POST"];                         [request setDidFailSelector:@selector(ASIFormDataRequestFailed:)];             [request setDidFinishSelector:@selector(ASIFormDataRequestSuceed:)];             [request startAsynchronous];         } } #pragma mark - savaImage// 保存图像 - (NSString *)saveImage:(UIImage*)image {     NSData *data;         if (UIImagePNGRepresentation(image) == nil)     {         data = UIImageJPEGRepresentation(image, 1.0);     }     else     {         data = UIImagePNGRepresentation(image);     }         NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)firstObject];     NSString *filePath = [docPath stringByAppendingPathComponent:@"tianImage.png"];     BOOL result = [data writeToFile:filePath atomically:YES];     if (result) {         NSLog(@"写入成功");     }     return filePath; }#pragma mark - scalePhoto// 图像压缩 - (UIImage *)scaleFromImage:(UIImage *)image {     if (!image)     {         return nil;     }         NSData *data = UIImagePNGRepresentation(image);     CGFloat dataSize = data.length/1024;     CGFloat width  = image.size.width;     CGFloat height = image.size.height;     CGSize size;         if (dataSize<=50) //小于50k     {         return image;     }     else if (dataSize<=100) //小于100k     {         size = CGSizeMake(width/2.f, height/2.f);     }     else if (dataSize<=200) //小于200k     {         size = CGSizeMake(width/4.f, height/4.f);     }     else if (dataSize<=500) //小于500k     {         size = CGSizeMake(width/4.f, height/4.f);     }     else if (dataSize<=1000) //小于1M     {         size = CGSizeMake(width/6.f, height/6.f);     }     else if (dataSize<=2000) //小于2M     {         size = CGSizeMake(width/10.f, height/10.f);     }     else //大于2M     {         size = CGSizeMake(width/12.f, height/12.f);     }         UIGraphicsBeginImageContext(size);     [image drawInRect:CGRectMake(0, 0, size.width, size.height)];     UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();     UIGraphicsEndImageContext();     if (!newImage)     {         return image;     }     return newImage; } #pragma mark - ASIHTTPRequestDelegate - (void)ASIFormDataRequestSuceed:(ASIFormDataRequest *)request {     } - (void)ASIFormDataRequestFailed:(ASIFormDataRequest *)request {     NSError *error = [request error];     NSLog(@"error:%@",error);
    }
  • 相关阅读:
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 833 字符串中的查找与替换(暴力模拟)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 832 翻转图像(位运算)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    Java实现 LeetCode 831 隐藏个人信息(暴力)
    how to use automapper in c#, from cf~
  • 原文地址:https://www.cnblogs.com/tian-sun/p/4849777.html
Copyright © 2011-2022 走看看