zoukankan      html  css  js  c++  java
  • iOS-iOS调用相机调用相册【将图片保存到本地相册】

    设置头部代理

    <UINavigationControllerDelegate, UIImagePickerControllerDelegate>

    1.调用相机

    检测前置摄像头是否可用

    - (BOOL)isFrontCameraAvailable{
        return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];
    }

    检测后置摄像头是否可用

    - (BOOL)isRearCameraAvailable{
        return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];
    }

    调用相机

    ///调用相机
    - (void)persentImagePicker{
        if (!_imagePickerG) {
            ///初始化相机
            _imagePickerG = [[UIImagePickerController alloc]init];
            ///代理
            _imagePickerG.delegate = self;
        }
        
        // 前面的摄像头是否可用
        if ([self isFrontCameraAvailable]) {
            _imagePickerG.sourceType = UIImagePickerControllerSourceTypeCamera;
        }
        // 后面的摄像头是否可用
        else if ([self isFirstResponder]){
            _imagePickerG.sourceType = UIImagePickerControllerSourceTypeCamera;
        }
        else{
            [SVProgressHUD showErrorWithStatus:@"没有相机可用~"];
            return;
        }
        ///允许拍照后裁剪
        _imagePickerG.allowsEditing = YES;
        [self.navigationController presentViewController:_imagePickerG animated:YES completion:nil];
    }

    2.调用相册

    ///调用本地相册
    - (void)persentImagePicker{
        if (!_imagePickerG) {
            ///初始化相机
            _imagePickerG = [[UIImagePickerController alloc]init];
            ///代理
            _imagePickerG.delegate = self;
        }
        ///相册
        _imagePickerG.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
        _imagePickerG.allowsEditing = YES;
        [self.navigationController presentViewController:_imagePickerG animated:YES completion:nil];
    }

    3.代理事件

    ///取消选择图片(拍照)
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
        [picker dismissViewControllerAnimated:YES completion:nil];
    }
    ///选择图片完成(从相册或者拍照完成)
    - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info{
        UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];///原图
        //获取修剪后的图片
        UIImage *imageUp = [info objectForKey:UIImagePickerControllerEditedImage];
    }

    4.将图片保存到本地

    ///保存图片到本地相册
    -(void)imageTopicSave:(UIImage *)image{
        UIImageWriteToSavedPhotosAlbum(image, self, @selector(image: didFinishSavingWithError: contextInfo:), nil);
    }
    - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
        if (error == nil) {
            
        }
        else{
            ///图片未能保存到本地
        }
    }
  • 相关阅读:
    python学习:两个py文件间的函数调用
    python学习:基础概念
    python学习:Windows 下 Python easy_install 的安装
    Python学习:python网址收集
    Nginx模块之Nginx-Ts-Module学习笔记(一)抢险体验
    PHP 文件加密Zend Guard Loader 学习和使用(如何安装ioncube扩展对PHP代码加密)
    OpenResty 扩展库(二)lua-resty-template
    Github 开源项目(二) jsmpeg-vnc
    info replication
    linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置
  • 原文地址:https://www.cnblogs.com/wangkejia/p/7804279.html
Copyright © 2011-2022 走看看