您的位置:首页 > 移动开发 > IOS开发

iOS选照片

2015-12-24 17:45 519 查看
<UITextViewDelegate,UIActionSheetDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate>

{

    //输入框

    UITextView *_textEditor;

    

    //下拉菜单

    UIActionSheet *myActionSheet;

    

    //图片2进制路径

    NSString* filePath;

}
/////////////

- (void)openMenu {

    //在这里呼出下方菜单按钮项

    myActionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles: @"打开照相机", @"从手机相册获取",nil];

    

    [myActionSheet showInView:self.view];

    

}

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

    

    //呼出的菜单按钮点击后的响应

    if (buttonIndex == myActionSheet.cancelButtonIndex)

    {

        NSLog(@"取消");

    }

    

    switch (buttonIndex)

    {

        case 0:  //打开照相机拍照

            [self takePhoto];

            break;

            

        case 1:  //打开本地相册

            [self LocalPhoto];

            break;

    }

}

//开始拍照

-(void)takePhoto

{

    UIImagePickerControllerSourceType sourceType = UIImagePickerControllerSourceTypeCamera;

    if ([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera])

    {

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

        picker.delegate = self;

        //设置拍照后的图片可被编辑

        picker.allowsEditing = YES;

//        picker.showsCameraControls  = YES;

        picker.sourceType = sourceType;

        [self presentModalViewController:picker animated:YES];

    }else

    {

        NSLog(@"模拟其中无法打开照相机,请在真机中使用");

    }

}

//打开本地相册

-(void)LocalPhoto

{

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

    

    picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    picker.delegate = self;

    //设置选择后的图片可被编辑

//    picker.showsCameraControls  = YES;

    picker.allowsEditing = YES;

    

    [self presentModalViewController:picker animated:YES];

}

//当选择一张图片后进入这里

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

{

    

    NSString *type = [info objectForKey:UIImagePickerControllerMediaType];

    

    //当选择的类型是图片

    if ([type isEqualToString:@"public.image"])

    {

        //先把图片转成NSData

//        UIImage* image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];

         //获取图片裁剪的图

        UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage];

        NSData *data;

        if (UIImagePNGRepresentation(image) == nil)

        {

            data = UIImageJPEGRepresentation(image, 1.0);

        }

        else

        {

            data = UIImagePNGRepresentation(image);

        }

        

        //图片保存的路径

        //这里将图片放在沙盒的documents文件夹中

        NSString * DocumentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];

        

        //文件管理器

        NSFileManager *fileManager = [NSFileManager defaultManager];

        

        //把刚刚图片转换的data对象拷贝至沙盒中 并保存为image.png

        [fileManager createDirectoryAtPath:DocumentsPath withIntermediateDirectories:YES attributes:nil error:nil];

        [fileManager createFileAtPath:[DocumentsPath stringByAppendingString:@"/image.png"] contents:data attributes:nil];

        

        //得到选择后沙盒中图片的完整路径

        filePath = [[NSString alloc]initWithFormat:@"%@%@",DocumentsPath,  @"/image.png"];

        

        //关闭相册界面

        [picker dismissModalViewControllerAnimated:YES];

        

        //创建一个选择后图片的小图标放在下方

        //类似微薄选择图后的效果

        UIImageView *smallimage = [[UIImageView alloc] initWithFrame:

                                   CGRectMake(50, 120, 40, 40)] ;

        

        smallimage.image = image;

        //加在视图中

        [self.view addSubview:smallimage];

        

    }

    

}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker

{

    NSLog(@"您取消了选择图片");

    [picker dismissModalViewControllerAnimated:YES];

}

-(void)sendInfo

{

    NSLog(@"图片的路径是:%@", filePath);

    

    NSLog(@"您输入框中的内容是:%@", _textEditor.text);

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

    return (interfaceOrientation == UIInterfaceOrientationPortrait);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: