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-saliency-crop

v1.0.1

Published

使用 Vision 裁剪图像重点区域的 react-native 库 | Cropping Images Using Saliency

Downloads

14

Readme

react-native-saliency-crop

使用 Vision 裁剪图像重点区域的 react-native 库 | Cropping Images Using Saliency

识别结果示例,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 13.0+

Installation

$ npm install react-native-saliency-crop --save

or

$ yarn add react-native-saliency-crop

# RN >= 0.60
cd ios && pod install
# RN < 0.60
react-native link react-native-saliency-crop

Usage

简单使用

import * as SaliencyCrop from 'react-native-saliency-crop';

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

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

import * as SaliencyCrop from 'react-native-saliency-crop';
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) => {
  SaliencyCrop.request(path, {
    saliencyType: SaliencyCrop.SaliencyType.ObjectnessBased,
    saveFormat: SaliencyCrop.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

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

Result - 识别结果

| 名称 | 类型 | 描述 | | --------------- | ------ | ------------------------------------------------------------------------- | | confidence | number | 置信度,[0 - 1] | | path | string | 裁剪后图像的路径 | | boundingBox | object | 重点区域边界框 { x: number; y: number; width: number; height: number; } |

SaliencyType

  • Orientation.AttentionBased: 1 - 基于注意力
  • Orientation.ObjectnessBased: 2 - 基于对象

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-saliency-image 要求最低 iOS 版本为 11.0(目前仅支持 iOS 13.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