npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-native-smart-cropper

v1.0.1

Published

智能裁剪图像重点区域的 react-native 库,支持基于注意力、对象和人脸。 | A react-native library for intelligently cropping key areas of images, supporting attention based, object and face based.

Downloads

3

Readme

react-native-smart-cropper

智能裁剪图像重点区域的 react-native 库,支持基于注意力、对象和人脸。 | A react-native library for intelligently cropping key areas of images, supporting attention based, object and face based.

识别结果示例,confidence(置信度,[0 - 1]区间内的小数)的值越大可信度越高。基于注意力模式下最多返回 1 个区域,基于对象模式下最多返回 3 个区域。

[
  {
    confidence: 0.848;
    path: "file:///private/mobile/Application/tmp/25D8F7E7-9A52-4E1C-A0D2-3CE07CF7E452.jpg",
    boundingBox: {
        "height": 1841.765625,
        "width": 2071.6171875,
        "x": 825.3984375,
        "y": 1128.09375
      }
  }
]

❗️ :warning:

目前基于人脸的裁剪支持 iOS 11.0+,基于注意力、对象的裁剪仅支持 iOS 13.0+,

Installation

$ npm install react-native-smart-cropper --save

or

$ yarn add react-native-smart-cropper

# RN >= 0.60
cd ios && pod install
# RN < 0.60
react-native link react-native-smart-cropper

Usage

简单使用

import * as SmartCropper from 'react-native-smart-cropper';

SmartCropper.request(path) // 本地路径
  .then((result) => {
    // success
  })
  .catch((error) => {
    // error
  });

高级使用 (使用网络图像)

import * as SmartCropper from 'react-native-smart-cropper';
import RNFS from 'react-native-fs';

const path = `${RNFS.TemporaryDirectoryPath}/IMG_1234.jpg`;

// https://github.com/itinance/react-native-fs
RNFS.downloadFile({
  fromUrl: 'https://s4.ax1x.com/2022/01/15/7JJaDI.png',
  toFile: path,
}).promise.then((res) => {
  SmartCropper.request(path, {
    cropType: SmartCropper.CropType.Object,
    saveFormat: SmartCropper.ImageFormat.JPEG,
    quality: 0.8,
  })
    .then((result) => {
      // success
    })
    .catch((error) => {
      // error
    });
});

API

request(path: string, options?: Object): Promise<{Result[]>

| 参数 | 类型 | 描述 | | ------------------ | ------ | ---------------------------------------------------------------------------------------------------------------------- | | path | string | 图像文件的本地绝对路径. 可使用 react-native-fs constants 获取 | | options (可选) | object | 可选项,见下 Options |

Options

| 参数 | 类型 | 描述 | 默认值 | | ------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------ | -------------------- | | cropType (可选) | number | 图像裁剪类型,支持两种类型:基于注意力、基于对象 、基于人脸 | CropType.Attention | | saveFormat (可选) | number | 指定保存图像结果的类型 | ImageFormat.JPEG | | quality (可选) | number | 结果图像的压缩级别,仅 saveFormatjpeg 时有效 [0.0 - 1.0] | 1 | | preferBackgroundProcessing (可选) | boolean | 如果设置为 true,则此属性会减少请求的内存占用、处理占用和 CPU/GPU 争用,但可能会花费更长的执行时间。 | false | | usesCPUOnly (可选) | boolean | 仅在 CPU 上执行。设置 false 表示可以自由地利用 GPU 来加速其处理。 | false | | orientation (可选) | number | 图像的方向 | Orientation.Up |

Result - 识别结果

| 名称 | 类型 | 描述 | | ---------------------- | ------ | ------------------------------------------------------------------------- | | confidence | number | 置信度,[0 - 1] | | path | string | 裁剪后图像的路径 | | faceCaptureQuality | number | 人脸的捕捉质量,[0.0 - 1.0]。仅当 corpTypeCropType.Face 时返回 | | boundingBox | object | 重点区域边界框 { x: number; y: number; width: number; height: number; } |

CropType

  • CropType.Attention: 1 - 基于注意力
  • CropType.Object: 2 - 基于对象
  • CropType.Face: 3` - 基于人脸

ImageFormat

  • ImageFormat.JPEG: 1 - jpg 格式
  • ImageFormat.PNG: 2 - png 格式

Orientation

  • Orientation.Up: 1 - 默认方向
  • Orientation.UpMirrored: 2 - 水平翻转
  • Orientation.Down: 3 - 旋转 180°
  • Orientation.DownMirrored: 4 - 垂直翻转
  • Orientation.Left: 5 - 水平翻转并逆时针旋转 90°
  • Orientation.LeftMirrored: 6 - 顺时针旋转 90°
  • Orientation.Right: 7 - 水平翻转并顺时针旋转 90°
  • Orientation.RightMirrored: 8 - 顺时针旋转 90°

Troubleshooting

  1. 检查您的最低 iOS 版本。react-native-smart-cropper 要求最低 iOS 版本为 11.0。
    • 打开你的 Podfile
    • 确保 platform :ios 设置为 11.0 或更高
    • 确保 iOS Deployment Target 设置为 11.0 或更高
  2. 确保您在项目中创建了 Swift 桥接头。
    • 使用 Xcode 打开你的项目(xxx.xcworkspace
    • 按照以下步骤创建 Swift 文件 File > New > File (⌘+N)
    • 选择 Swift File 并点击 Next
    • 输入文件名 BridgingFile.swift,然后点击创建,提示时点击 Create Bridging Header

TODO

  • [ ] 支持网络图像

License

MIT