iOS 上传照片到服务器 获取相册和拍照功能的照片 照片压缩上传

#pragma mark - 添加图片

-(void)addImageClick:(id)sender

{

   [self.inputText resignFirstResponder];

    UIActionSheet *sheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"从相册中选择" otherButtonTitles:@"拍照", nil];

    [sheet showInView:self.view];

//    currentImageButtonTag = ((UIButton *)sender).tag;

    

}

#pragma mark - actionSheetDelegate

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

    //获取相册

    if (buttonIndex == 0)

    {

        //相册

        imagePicker.delegate = self;

        [self presentViewController:[self imagePicker] animated:YES completion:NULL];

    }

    

    else if (buttonIndex == 1)

    {

      //拍照

        if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"])

        {

            NSLog(@"该设备不支持");

            return;

        }

        

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

            

            [self performSelector:@selector(showcamera1) withObject:nil afterDelay:0.3];

        } }

   

}

//拍照功能

-(void)showcamera1{

   

    if ([[[UIDevice currentDevice] model] isEqualToString:@"iPhone Simulator"])

    {

        NSLog(@"该设备不支持");

        return;

    }

    UIImagePickerController *picker = [[UIImagePickerController alloc]init];

    picker.delegate = self;

    [picker setSourceType: UIImagePickerControllerSourceTypeCamera];

    [self presentViewController:picker animated:YES

                     completion:nil];

    

}

#pragma mark - 照片选择控制器

-(UIImagePickerController *)imagePicker

{

  

   UIImagePickerController * _imagePicker = [[UIImagePickerController alloc] init];

   

    [_imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

    _imagePicker.delegate = self;

    

    

    return _imagePicker;

}

//协议

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

{

    NSLog(@"%@",info);

   

    [self dismissViewControllerAnimated:YES completion:NULL];

    

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

 

    [NSThread detachNewThreadSelector:@selector(useImage1:) toTarget:self withObject:image];


}

-(void)useImage1:(id)image

{

   

    //剪切照片  上传照片的大小

    UIImage *scaleImage =[self scaleToSize:image size:CGSizeMake(600, 600)];

    

    [picBtn1 setBackgroundImage:scaleImage forState:UIControlStateNormal];

}



- (NSString *)generateUuidString

{

       CFUUIDRef uuid = CFUUIDCreate(kCFAllocatorDefault);

         NSString *uuidString = (NSString *)CFBridgingRelease(CFUUIDCreateString(kCFAllocatorDefault, uuid));

    

        CFRelease(uuid);


         return uuidString;

}

//剪切方法

- (UIImage *)scaleToSize:(UIImage*)img size:(CGSize)targetSize

{

    UIImage *sourceImage = img;

    UIImage *newImage = nil;

    CGSize imageSize = sourceImage.size;

    CGFloat width = imageSize.width;

    CGFloat height = imageSize.height;

    

    if (width > height && targetSize.width < targetSize.height)

    {

        CGFloat tmp = targetSize.width;

        targetSize.width = targetSize.height;

        targetSize.height = tmp;

    }

    else if (width < height && targetSize.width > targetSize.height)

    {

        CGFloat tmp = targetSize.width;

        targetSize.width = targetSize.height;

        targetSize.height = tmp;

    }

    

    CGFloat targetWidth = targetSize.width;

    CGFloat targetHeight = targetSize.height;

    CGFloat scaleFactor = 0.0;

    CGFloat scaledWidth = targetWidth;

    CGFloat scaledHeight = targetHeight;

    CGPoint thumbnailPoint = CGPointMake(0.0,0.0);

    if (CGSizeEqualToSize(imageSize, targetSize) == NO)

    {

        CGFloat widthFactor = targetWidth / width;

        CGFloat heightFactor = targetHeight / height;

        if (widthFactor > heightFactor)

            scaleFactor = widthFactor; // scale to fit height

        else

            scaleFactor = heightFactor; // scale to fit width

        scaledWidth= width * scaleFactor;

        scaledHeight = height * scaleFactor;

        // center the image

        if (widthFactor > heightFactor)

        {

            thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;

        }

        else if (widthFactor < heightFactor)

        {

            thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;

        }

    }

    UIGraphicsBeginImageContext(targetSize); // this will crop

    CGRect thumbnailRect = CGRectZero;

    thumbnailRect.origin = thumbnailPoint;

    thumbnailRect.size.width= scaledWidth;

    thumbnailRect.size.height = scaledHeight;

    [sourceImage drawInRect:thumbnailRect];

    newImage = UIGraphicsGetImageFromCurrentImageContext();

    if(newImage == nil)

        NSLog(@"could not scale image");

    //pop the context to get back to the default

    UIGraphicsEndImageContext();

    return newImage;

}


//上传到服务器

-(void)sendtoServer1:(UIButton *)sender{


//把照片转为base64位格式上传

NSData *userImageData =UIImageJPEGRepresentation([picBtn1 backgroundImageForState:UIControlStateNormal], 0.4); //压缩


_base64 = [self dataTranslateToBase64String:userImageData];


//照片文件名字

 NSDate *date = [NSDate date];

        NSDateFormatter *fomatter = [[NSDateFormatter alloc]init];

        [fomatter setDateFormat:@"yyyyMMddHHmmssS"] ;

        

        NSString *imageName = [[fomatter stringFromDate:date] stringByAppendingString:@".jpg"];


最后:自己拼接上传的接口


}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值