CameraEngine 0.9.3

CameraEngine 0.9.3

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2016年7月
SPM支持 SPM

remi robert 维护。



cameraenginelogo

🌟Swift 中最先进的 Camera 框架🌟

          codebeat badge  Donate

CameraEngine 是一个iOS相机引擎库,允许您轻松地集成特殊捕获功能和自定义摄像头功能到您的iOS应用程序中。

🔥功能

CameraEngine
☺️ 支持 iOS8 - iOS9
📐 支持设备方向
🏁 快速捕获
📷 照片捕获
🎥 视频捕获
📈 视频/照片捕获质量设置
🙋 切换设备(前置、后置)
💡 闪光灯模式管理
🔦 手电筒模式管理
🔎 焦点模式管理
:bowtie: 检测人脸、二维码和条形码
🚀 GIF 编码器

🔨安装

手动

  • 下载 CameraEngine 子目录中的所有文件。
  • 将源文件添加到您的 Xcode 项目中。
  • 导入 CameraEngine

🚀快速入门

首先让我们初始化并开始相机会话。您可以在 viewDidLoad 中或在 appDelegate 中调用该函数。

override func viewDidLoad() {
  super.viewDidLoad()
  self.cameraEngine.startSession()
}

显示预览层

override func viewDidLayoutSubviews() {
  let layer = self.cameraEngine.previewLayer

  layer.frame = self.view.bounds
  self.view.layer.insertSublayer(layer, atIndex: 0)
  self.view.layer.masksToBounds = true
}

捕获照片

self.cameraEngine.capturePhoto { (image: UIImage?, error: NSError?) -> (Void) in
  //get the picture tooked in the 👉 image
}

捕获视频

private func startRecording() {
  guard let url = CameraEngineFileManager.documentPath("video.mp4") else {
    return
  }

  self.cameraEngine.startRecordingVideo(url, blockCompletion: { (url, error) -> (Void) in
  })
}

private func stopRecording() {
  self.cameraEngine.stopRecordingVideo()
}

生成动画图像 GIF

guard let url = CameraEngineFileManager.documentPath("animated.gif") else {
  return
}
self.cameraEngine.createGif(url, frames: self.frames, delayTime: 0.1, completionGif: { (success, url) -> (Void) in
  //Do some crazy stuff here
})

🔧配置

CameraEngine 允许您设置一些参数,例如 闪光灯手电筒焦点 的管理。同时也影响输出文件大小的媒体质量。

闪光灯

self.cameraEngine.flashMode = .On
self.cameraEngine.flashMode = .Off
self.cameraEngine.flashMode = .Auto

手电筒

self.cameraEngine.torchMode = .On
self.cameraEngine.torchMode = .Off
self.cameraEngine.torchMode = .Auto

焦点

CameraEngine 焦点
.Locked 表示镜头位于固定位置
.AutoFocus 表示设定此选项将使相机自动对焦一次,然后返回到 Locked
.ContinuousAutoFocus 表示当场景变化时,相机将自动聚焦于画面的中心
self.cameraEngine.cameraFocus = .Locked
self.cameraEngine.cameraFocus = .AutoFocus
self.cameraEngine.cameraFocus = .ContinuousAutoFocus

相机预设照片

self.cameraEngine.sessionPresset = .Low
self.cameraEngine.sessionPresset = .Medium
self.cameraEngine.sessionPresset = .High
...

相机预设视频

self.cameraEngine.videoEncoderPresset = .Preset640x480
self.cameraEngine.videoEncoderPresset = .Preset960x540
self.cameraEngine.videoEncoderPresset = .Preset1280x720
self.cameraEngine.videoEncoderPresset = .Preset1920x1080
self.cameraEngine.videoEncoderPresset = .Preset3840x2160

👀物体检测

CameraEngine可检测人脸二维码条形码。当它检测到某个内容时,将返回每一帧的全部元数据,以便您随时使用。

设置检测模式

self.cameraEngine.metadataDetection = .Face
self.cameraEngine.metadataDetection = .QRCode
self.cameraEngine.metadataDetection = .BareCode
self.cameraEngine.metadataDetection = .None //disable the detection

利用人脸检测

self.cameraEngine.blockCompletionFaceDetection = { faceObject in
  let frameFace = (faceObject as AVMetadataObject).bounds
  self.displayLayerDetection(frame: frameFace)
}

利用代码检测(条形码和二维码)

self.cameraEngine.blockCompletionCodeDetection = { codeObject in
  let valueCode = codeObject.stringValue
  let frameCode = (codeObject as AVMetadataObject).bounds
  self.displayLayerDetection(frame: frameCode)
}

🚗💨示例

您将找到一个示例项目,该项目实现了CameraEngine的所有功能,并提供了一个界面,您可以在其中测试和调整设置。要运行示例项目,请运行pod install,因为该项目使用的是CameraEngine的当前生产版本。

贡献者🍻

许可

该项目根据MIT许可证的条款进行许可。请参阅LICENSE文件。

该项目与苹果公司无关。该项目根据MIT许可证开源,这意味着您有权完全访问源代码,并根据您的需求对其进行修改。

如果您想支持该库的开发,请随意Donate捐赠。感谢迄今为止的所有贡献者!

bannabot