添加代理
UIImagePickerControllerDelegate
调用方法如下:
- (void)openMenu
{
//创建
UIAlertController *al = [UIAlertController alertControllerWithTitle:nil message:nil preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *a2 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action)
{
NSLog(@"取消");
}];
[al addAction:a2];
UIAlertAction *a3 = [UIAlertAction actionWithTitle:@"拍照" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action)
{
[self takePhoto];
}];
[al addAction:a3];
UIAlertAction *a4 = [UIAlertAction actionWithTitle:@"从相册添加" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action)
{
[self LocalPhoto];
}];
[al addAction:a4];
[self presentViewController:al animated:YES completion:nil];
}
#pragma -mark 打开照相机
- (void)takePhoto
{
UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.delegate = self;
picker.allowsEditing = YES;
picker.sourceType = sourceType;
//[self presentModalViewController:picker animated:YES];
[self presentViewController:picker animated:YES completion:^{
NSLog(@"OK");
}];
}
else {
NSLog(@"模拟其中无法打开照相机,请在真机中使用");
}
}
#pragma -mark 本地相册
- (void)LocalPhoto
{
UIImagePickerController *picker = [[UIImagePickerController alloc]init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self;
picker.allowsEditing = YES;
//[self presentModalViewController:picker animated:YES];
[self presentViewController:picker animated:YES completion:^{
}];
}
#pragma -mark 选择相册照片或相机拍摄照片
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
UIImage *newImg = [self imageWithImage:image scaledToSize:CGSizeMake(150, 150)];
NSData *imageData = UIImageJPEGRepresentation(newImg, 0.5);
//将图片转为base64(string)
imageData64 = [imageData base64EncodedStringWithOptions:0];
[self parseByPostUsingAFNetworkEditCover];
[picker dismissViewControllerAnimated:YES completion:^{
}];
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
NSLog(@"您取消了选择图片");
[picker dismissViewControllerAnimated:YES completion:^{
}];
}
- (void)sendInfo
{
NSLog(@"图片的路径是:%@", filePath);
NSLog(@"您输入框中的内容是:%@",_textEditor.text);
}
#pragma -mark 对图片尺寸进行压缩--
-(UIImage*)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
// Create a graphics image context
UIGraphicsBeginImageContext(newSize);
// Tell the old image to draw in this new context, with the desired
// new size
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
// Get the new image from the context
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
// End the context
UIGraphicsEndImageContext();
// Return the new image.
return newImage;
}