zoukankan      html  css  js  c++  java
  • IOS:Camera的特性分析与使用

    Camera是IOS中很重要的一个信息获取途径。

    以下我们主要从硬件特性以及软件特性两个方面来看看Canera的使用,先来看看软件上我们使用Camera都能干点什么。

    先来看看以下一张图:


    相机软件部分主要介绍两个部分:

    <1> UIImagePickerController

    <2> AVCapture

    AVCapture的结构和使用在前面的博客中已经介绍了,这里先来看看UIImagePickerController的相关特点。

    我们使用UIImagePickerController能够做点什么?

    <1> UIImagePickerController

    (1)输入源设置:相机、照片库

    (2)设置前后摄像头

    (3)设置视频质量

    (4)设置照片、视频模式

    (5)设置闪光灯打开方式

    (6)视频编辑

    (7)自己定义摄像界面

    拍照部分:能够參考以下代码:

            self.imagePicker = [[UIImagePickerController alloc] init];

            self.imagePicker.delegate = self;//设置托付代理

            self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;

            self.imagePicker.videoQuality = UIImagePickerControllerQualityTypeIFrame1280x720;

    //        self.imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModeVideo;

            self.imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOn;

            self.imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront;

            self.imagePicker.allowsEditing = YES;//设置UIImagePickerController是否同意编辑

    相机属性设置之后。通过模态势图将相机打开:    

    [self presentViewController:self.imagePicker animated:YES completion:NULL];

    在完毕以上设置之后就能够在回调方法中拿到我们拍摄的、或者从照片库中选取的图片:

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

    {

    //  获取可编辑Image   

        UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

        UIImageWriteToSavedPhotosAlbum (image, nil, nil , nil);//保存到本地相冊

        self.imageView.image = image;

        self.imageView.contentMode = UIViewContentModeScaleAspectFill;//照片的显示方式是否全屏

        [self dismissViewControllerAnimated:YES completion:NULL];//模态视图退出

    }

    能够将照片保存起来,也能够对比片进行处理加入特效等等。

    。。

    视频录制部分:

    视频录制设置和视频保存与拍照方法有些不一样。參考代码例如以下:

    //      设置媒体类型。从当前摄像头获取媒体。

            self.imagePicker.mediaTypes = [UIImagePickerController                   availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];

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

    {

    //  检測当前是 拍摄照片还是拍摄视频

        NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];

        if (CFStringCompare((__bridge CFStringRef) mediaType, kUTTypeMovie, 0) == kCFCompareEqualTo)

        {

    //      保存视频,所选择视频的来源地址。

            NSString *moviePath = [[info objectForKey: UIImagePickerControllerMediaURL] path];

            

            if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum (moviePath))

            {

                UISaveVideoAtPathToSavedPhotosAlbum (moviePath, nil, nil, nil);

            }

        }

        [self dismissViewControllerAnimated:YES completion:NULL];

    }

    自己定义相机拍摄界面:

    这个功能在相机上用的也很的多。比方我们常常须要定制个性化的相机。比方美颜相机拍照功能等等。。

    核心代码:

    self.imagePicker.cameraOverlayView = [自己定义UIView ,在UIView上设置各种button];

    比如:闪光灯button:

        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 280, 480)];

        view.backgroundColor = [UIColor clearColor];

        

        UIButton *flashButton = [[UIButton alloc] initWithFrame:CGRectMake(10, 10, 120, 44)];

        flashButton.backgroundColor = [UIColor colorWithRed:.5 green:.5 blue:.5 alpha:.5];

        [flashButton setTitle:@"闪光灯" forState:UIControlStateNormal];

        [flashButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];

    好了。写到这里篇幅已经有点长了,AVCapture 放到下一篇中,以免引起视觉疲劳 呵呵。



  • 相关阅读:
    python脚本2_输入2个数比较大小后从小到大升序打印
    python脚本1_给一个半径求圆的面积和周长
    配置双机互信
    如何在 CentOS7 中安装 Nodejs
    Git 服务器搭建
    docker安装脚本
    CentOS7下安装Docker-Compose
    Linux 文件锁
    6 系统数据文件和信息
    bash脚本编程之二 字符串测试及for循环
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6767821.html
Copyright © 2011-2022 走看看