#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"];
最后:自己拼接上传的接口
}