react-native - Expo 图像操纵器裁剪 - 根据 facedetector 值

标签 react-native expo expo-camera

简而言之:我如何使用 facedetector 坐标和大小进行图像操纵器裁剪?我想从照片中裁剪脸部。

解释;

我使用带有面部检测功能的 expo-camera。它工作得很好。人脸检测器给出输出对象

 "origin": Object {
    "x": 85.00000000000006,
    "y": 231.35,   },   "size": Object {
    "height": 182,
    "width": 173.33333333333331,   }, }

我可以在适合屏幕尺寸的相机预览模式下使用该坐标在面部周围绘制一个框。拍摄图像后,输出图像比相机预览大得多。所以我不能使用那个坐标来裁剪图片。我根据图像大小更新了 facedetector 坐标和大小。例如,如果图像宽度比屏幕宽度大 2 倍,我将 originx 和宽度乘以 2。但是图像操纵器裁剪没有给我想要的结果。 任何帮助将不胜感激。

最佳答案

这是我的解决方案。我取屏幕尺寸和面部尺寸的百分比。

const growthFactor = {
          w: data.width / width,
          h: data.height / height,
        };
        const cropDimensions = {
          originX: Math.round(
            growthFactor.w * face.origin.x
          ),
          originY: Math.round(
            growthFactor.h * face.origin.y
          ),
          width: Math.round(
            growthFactor.h * face.size.height
          ),
          height: Math.round(
            growthFactor.h * face.size.height
          ),
        };

附言。我将高度和宽度都与 growtfactor.h 相乘,因为我需要方形裁剪照片。

关于react-native - Expo 图像操纵器裁剪 - 根据 facedetector 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65298092/

相关文章:

javascript - 如何为文本之间的某些字符添加文本样式

javascript - 世博相机第一次显示黑屏: React-Native

react-native - 如何查看expo中录制的视频文件的大小?

javascript - React Native Expo-Camera 录制视频发现问题 User rejected audio permission needed

javascript - 在 firebase 和 Expo 中重置密码时如何检查当前密码?

android - 为生产 React Native 发布应用程序

android - 从 native android 应用程序中删除系统菜单栏

Javascript 在 Android 的 React-Native WebView 中不起作用(设置了 javaScriptEnabled = true)

javascript - App.js 不更新 iOS 模拟器中的修改代码

react-native - 我们可以在带有 Expo 的 React Native 项目中使用 Realm 吗?