美文网首页iOS自我学习库iOS开发实用技术
iOS简单实现调用系统相机,并使用拍摄到的相片

iOS简单实现调用系统相机,并使用拍摄到的相片

作者: 奋斗才刚刚开始 | 来源:发表于2018-03-22 12:16 被阅读1016次

    自己的笔记,保存起来方便自己下次看,不用再百度了。另外比我还白的小白可以看看。

    iOS仅仅调用系统相机很简单,不需要导入其他头文件,仅仅实现代理方法就行。

    下面是具体代码:

    
        // 创建UIImagePickerController实例
        UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
        // 设置代理
        imagePickerController.delegate = self;
        // 是否显示裁剪框编辑(默认为NO),等于YES的时候,照片拍摄完成可以进行裁剪
        imagePickerController.allowsEditing = YES;
        // 设置照片来源为相机
        imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
        // 设置进入相机时使用前置或后置摄像头
        imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
        // 展示选取照片控制器
        [self presentViewController:imagePickerController animated:YES completion:nil];
    
    

    这里imagePickerController的需要实现俩个代理,

    
    <UIImagePickerControllerDelegate, UINavigationControllerDelegate>
    
    

    我们想拿到拍摄的图片需要实现图像的代理方法

    
    #pragma mark - UIImagePickerControllerDelegate
    // 完成图片的选取后调用的方法
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
        // 选取完图片后跳转回原控制器
        [picker dismissViewControllerAnimated:YES completion:nil];
        /* 此处参数 info 是一个字典,下面是字典中的键值 (从相机获取的图片和相册获取的图片时,两者的info值不尽相同)
         * UIImagePickerControllerMediaType; // 媒体类型
         * UIImagePickerControllerOriginalImage; // 原始图片
         * UIImagePickerControllerEditedImage; // 裁剪后图片
         * UIImagePickerControllerCropRect; // 图片裁剪区域(CGRect)
         * UIImagePickerControllerMediaURL; // 媒体的URL
         * UIImagePickerControllerReferenceURL // 原件的URL
         * UIImagePickerControllerMediaMetadata // 当数据来源是相机时,此值才有效
         */
        // 从info中将图片取出,并加载到imageView当中
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
        self.imageView.image = image;
    //    // 创建保存图像时需要传入的选择器对象(回调方法格式固定)
    //    SEL selectorToCall = @selector(image:didFinishSavingWithError:contextInfo:);
    //    // 将图像保存到相册(第三个参数需要传入上面格式的选择器对象)
    //    UIImageWriteToSavedPhotosAlbum(image, self, selectorToCall, NULL);
    }
    
    // 取消选取调用的方法
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
        [self dismissViewControllerAnimated:YES completion:nil];
    }
    
    

    简单的俩部就能实现,调用系统相机拍照,并获取拍摄到的照片,但是这里调用的相机是英文的,所以我们需要做一下本地化操作,我个人的做法如下:

    1.在 info.plist 添加Localized resources can be mixed并设值为YES,表示是否允许应用程序获取框架库内语言

    2.在info.plist 中添加或修改Localization native development region选择china

    这样就得到一个中文的照相机界面了。

    相关文章

      网友评论

        本文标题:iOS简单实现调用系统相机,并使用拍摄到的相片

        本文链接:https://www.haomeiwen.com/subject/arcaqftx.html