FaceAware 2.1.0

FaceAware 2.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
已发布最后发布2019年10月
SPM支持 SPM

Beau NouvelleBeau Nouvelle维护。




FaceAware 2.1.0

FaceAware

有时,我们需要处理的图像的长宽比并不能完全适合我们的UIImageView中。

在大多数情况下,我们可以使用 AspectFill 将图像适应于 UIImageView 的边界,而不会拉伸或留下空白,然而,当涉及到人物照片时,如果它们不是完全居中,那么人脸通常会被裁剪掉。

这就是 FaceAware 发挥作用的地方。它将通过 UIImageViewimage 属性或您使用内置函数设置的图像来分析图像,并专注于它能够找到的任何人脸。

FaceAware 最常见的用途是与头像。

使用 FaceAware,您的用户将不再需要裁剪和调整他们的个人资料图片。

基于这两个较旧的项目

这两个项目似乎都没有再维护了。

要求

  • Swift 5.1
  • iOS 8.0+
  • Xcode 11

安装

手册

简单地将 UIImageView+FaceAware.swift 拖入你的项目中。

Carthage

  • 在你的 Cartfile 中添加 github "BeauNouvelle/FaceAware"

有关安装和设置 Carthage 的更多信息,请参阅此处:https://github.com/Carthage/Carthage

Cocoapods

  • 在 pod 文件中添加 pod 'FaceAware'
  • import FaceAware 添加到你希望使用它的文件顶部。

用法

有几种方法可以让你的图像视图聚焦于图像中的面部。

界面编辑器

这是最简单的方法,不需要编写任何代码。扩展使用 @IBDesignable@IBInspectable,你可以在 IB 中打开 focusOnFaces。然而,直到你运行项目,你实际上看不到扩展的工作。

代码

你可以设置 focusOnFacestrue

someImageView.focusOnFaces = true

确保在设置图像之后进行此操作。如果在调用时没有图像,将没有面部可供聚焦。


或者你也可以使用

someImageView.set(image: myImage, focusOnFaces: true)

这样可以消除之前未设置图像的担忧。


您还可以通过将闭包传递给《didFocusOnFaces》属性来接收到当人脸检测和任何图像调整完成时的回调。

someImageView.didFocusOnFaces = {
     print("Did finish focussing")
}

调试

FaceAware现在具有调试模式,可以在检测到的图像内任何人脸周围画红色正方形。要启用,可以将debug属性设置为true。

someImageView.debug = true

您也可以在界面构建器中设置此标志。

需要更多帮助?有问题吗?

在Twitter上联系我 @beaunouvelle。此外,如果您在项目中使用并喜欢它,请通知我以便我继续对此进行改进!

未来计划

  • 添加仅关注照片中最大/最近人脸的选项。