`
小嗷喏
  • 浏览: 52647 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

关于UIImagePickerController和AVCaptureSession的理解

    博客分类:
  • iOS
 
阅读更多

一、UIimagePickerController 用于控制和调用系统自带的媒体类型,设置实例的sourceType属性为一下三种类型就可以使用相对应的系统的资源

  1.UIImagePickerControllerSourceTypePhotoLibrary(系统的照片库选择照片);

  2.UImagePickerControllerSourceTypeSavedPhotosAlbum(只能在保存的相册中选择照片);

  3.UImagePickerControllerSourceTypeCamera(使用系统照相机来获取图片或视频)

 

   因此我们可以既可以从本地获取图片,也可以调用照相机来获取。当我们完成了获取图片和选择了用照相机拍下的照片或视频式或者取消了这写操作式。它就调用它的代理。

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

 

    可以根据字典型的参数 info 的keys 来获取相应的数据,下面式 info的keys值:

    (1).UIImagePickerControllerMediaType;      // an NSString (UTI, i.e. kUTTypeImage)

    (2).UIImagePickerControllerOriginalImage;  // a UIImage

    (3).UIImagePickerControllerEditedImage;    // a UIImage

    (4).UIImagePickerControllerCropRect;       // an NSValue (CGRect)

    (5).UIImagePickerControllerMediaURL;       // an NSURL 

    (6).UIImagePickerControllerReferenceURL  //参考一个有用的资源在AssetsLibrary framework

    (7).UIImagePickerControllerMediaMetadata   // 包含拍摄照片的元数据

 

   2. - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;

     用于取消操作时调用的代理。

 

   一些属性:    (1). cameraOverlayView  //可以自己定制Camer拍摄页面

                      (2).videoQuality   //拍摄Video的质量 

                      (3).showsCameraControls // 布尔型 默认为YES,如果你设置为NO,将会隐藏camera UI

                      (4).allowsEditing  //布尔型 默认为NO ,为YES可以编辑图片和视频。

 

      UIImgePickercontroller处理的并不是原始摄像头数据,  它是在原始数据被处理成图像后才开始访问。

所以UIImagePickerController可以用于简单的媒体捕捉,通过设置属性sourceType和captureMode可以设置使用前置摄像头还是后置摄像头,让它以不同的分辨率捕捉静止图像或者视频。不过AVFountion能在原始数据编程图像之前就可以访问它。

 

二、

 

 1.AVCaptureSession用来控制设备(AVCaptureDeviceInput)视频图像到流入输出缓存区(AVCaptureOutput)的过程。一旦AVCature启动以后,就会收集来自输入设备的信息,并在适当的时候将这些信息输出到数据缓冲区中。

 

 2.AVCaptureVideoPreviewLayer默认情况下会显示来自输入设备的原始数据,是个预览图层。如果要实现实时滤镜或在这个图层上绘制额外的物体,那么就要从视频输出缓冲区获取数据帧数据,并对其进行处理,处理完毕后可将像素数据输出到另一个图层或者OpenGL上下文中。

 

 3.AVCaptureConnection 用来在AVCaptureInput和ACaptureOutput之间建立连接 。     AVCaptureSession必须从AVCaptureConnection中获取实际数据。

 

 4.AVCaptureDevice可以用来创建必要的输入捕捉设备如摄像头。

 5.AVCaptureStillImageOutput或者AVCaptureVideoDataOutput来添加一个输出缓冲区

 

具体的使用参考 http://furnacedigital.blogspot.com/2012/11/avcapturestillimageoutput.html

                          http://furnacedigital.blogspot.tw/2012/11/avcapturevideodataoutput.html

 

分享到:
评论

相关推荐

    iOS 调用本地相机和相册

    然而,这涉及到更复杂的编码,需要对视频捕捉和图像处理有深入理解。 总结来说,调用iOS本地相机和相册主要涉及使用`UIImagePickerController`,设置权限,处理用户选择或取消的操作,以及在必要时利用`...

    iOS 6 Programming Cookbook第13章_照相机和图片库

    本书第13章《照相机和图片库》为iOS开发者提供了实用的指南,帮助他们更好地理解和应用iOS 6系统中的摄像头功能和多媒体库管理。 #### 1.1. 检测和研究摄像头 **1.1.1. 问题** 如何确定当前设备是否支持摄像头,...

    IOS应用源码之CameraDemo.rar

    例如,移除`UIImagePickerController`和关闭`AVCaptureSession`。 通过CameraDemo的学习,开发者可以熟练掌握iOS应用中相机功能的集成,并为用户提供更好的拍照体验。实际开发中,还可以根据需求进行更复杂的定制,...

    ios-照片多选 和拍照.zip

    在iOS开发中,用户经常需要实现从相册中选择多张照片或直接通过相机拍照的功能。这个名为"ios-照片多选 和拍照.zip"的压缩包可能包含...通过深入理解和实践这些知识点,开发者可以构建出功能完善的图片选择和拍摄功能。

    ios-swift --- 相册选择 和照相机.zip

    综上所述,使用Swift实现相册选择和相机功能涉及对iOS系统功能的深入理解,包括Photos Framework和AVFoundation Framework的使用。`Fusuma-master`项目提供了一个实用的示例,展示了如何在实际应用中集成这些功能。...

    IOS获取本地视频库和获取摄像头视频流

    这通常通过`UIImagePickerController`类实现,它是一个内置的UI组件,能够展示用户的媒体库,包括照片和视频。开发者需要设置`UIImagePickerController.sourceType`为`.photoLibrary`来启用视频库访问。同时,必须...

    CameraDemoNew

    在iOS开发中,"CameraDemoNew"项目是一个关于相机和相册调用的示例应用。这个应用展示了如何使用Objective-C或Swift语言简洁地实现相机和相册功能,特别是通过block进行回调。在之前的版本中,该应用可能不支持直接...

    iOS照相机和摄像头简单使用和入门

    在iOS开发中,照相机和摄像头的使用是十分常见的功能,尤其在...通过理解并熟练运用`AVFoundation`和ARKit框架,开发者可以构建出高度互动且用户友好的应用程序。记得在实践中不断学习和探索,提升你的iOS开发技能。

    iOS 照相机与摄像机的使用

    在iOS平台上,照相机与摄像机的使用是移动应用开发中的关键部分,特别是在构建与媒体交互的应用时。本文将深入探讨如何在iOS中利用这些...通过理解和应用这些技术,开发者可以创建出功能丰富、用户体验良好的媒体应用。

    ios-关于相机的操作,调用系统相机和自定义相机.zip

    在iOS开发中,相机操作...理解这些知识点对于构建高质量的iOS应用至关重要,特别是那些涉及媒体捕捉和处理的应用。在实际开发中,还需要考虑性能优化、权限管理以及用户隐私等方面的问题,以确保应用的稳定性和合规性。

    IOS应用源码之获取本地视频库和获取摄像头视频流 VideoUpload .zip

    - **创建AVCaptureSession**: 创建一个`AVCaptureSession`实例,它是所有捕获输入和输出的中心。 - **配置输入**: 添加`AVCaptureDeviceInput`对象到会话,使用`AVCaptureDevice.default(for: .video)`获取默认的...

    加载IOS相册图片.rar

    在Objective-C或Swift的代码中,你需要调用AVFoundation框架提供的API来启动相机,如`AVCaptureStillImageOutput`和`AVCaptureSession`,用于捕获静态照片。记得在Info.plist文件中添加相应的权限声明,比如`...

    iPhone开发秘籍第七章Media

    本章涵盖了音频、视频和图像处理等多个核心领域,旨在帮助开发者深入理解并熟练运用这些技术。 1. **音频处理**: iOS提供了多种音频处理框架,如AVFoundation和AudioToolbox。AVFoundation是主要的音频处理框架,...

    ios-照片叠加、二维码扫描.zip

    本项目中的"ios-照片叠加、二维码扫描.zip"包含了一个小型的Demo,旨在帮助开发者快速理解和实现这两个功能。接下来,我们将详细讨论这两个技术点。 **照片叠加** 照片叠加通常指的是在一张图片的基础上添加另一张...

    IOS应用源码——一个自定义的照相demo.zip

    AVCaptureSession是核心,它管理摄像头输入和输出,而AVCaptureVideoDataOutput和AVCaptureStillImageOutput则分别用于处理视频流和捕捉静态图像。 6. **图像处理**: 拍照后,可能会对图像进行各种处理,比如裁剪、...

    ios-选择照片,拍照,视频.zip

    为了提高用户体验,你还可以自定义相机界面,添加滤镜、贴纸等功能,这通常需要用到`AVCaptureSession`和相关类。通过配置`AVCaptureDeviceInput`、`AVCaptureVideoDataOutput`等,你可以控制相机的参数,如闪光灯、...

    swift-自定义相机自定义身份证拍照相机有剪裁

    在Swift开发中,创建一个自定义相机功能,特别...`CYXCustomerCameraDemo-master`可能是一个包含此类功能的示例项目,你可以参考其代码实现来学习和理解这些知识点。在实际开发中,还需要根据具体需求进行调整和定制。

    IOS应用源码——一个自定义的照相demo.rar

    在iOS开发中,创建自定义相机功能是一项常见的需求,它能提供给用户更个性化的拍照体验。本示例源码“IOS应用源码——...通过学习和理解这些技术,开发者可以构建出具有高度定制性的相机应用,满足各种特定场景的需求。

    相机相册OC

    标题“相机相册OC”指的是一...总的来说,"相机相册OC"是一个适合初学者的iOS开发项目,通过学习和实践,开发者可以深入理解如何使用Objective-C与系统框架进行交互,实现相机和相册功能,并且培养良好的代码注释习惯。

    (OC)(二维码扫描)QRCodeVC.zip

    在二维码扫描中,AVCaptureSession是关键,它用于捕捉视频流,AVCaptureMetadataOutput则负责检测和解析二维码。 3. **CoreImage框架**:可能用于预处理摄像头输入,例如调整亮度、对比度,以提高二维码识别的成功...

Global site tag (gtag.js) - Google Analytics