0.0.12 • Published 2 years ago

react-native-image-utils v0.0.12

Weekly downloads
1
License
MIT
Repository
github
Last release
2 years ago

React Native Image Utils

Installation 🚀🚀

$ npm install react-native-image-utils --save

or

$ yarn add react-native-image-utils

then,

$ react-native link react-native-image-utils

Android Only

  1. If you do not already have openCV installed in your project, add this line to your settings.gradle
include ':openCVLibrary310'
project(':openCVLibrary310').projectDir = new File(rootProject.projectDir,'../node_modules/react-native-image-utils/android/ZdependencyZopenCVLibrary310')
  1. Add below into MainApplication.java
public class MainApplication extends Application implements ReactApplication {
    ////// insert this
    static{
        System.loadLibrary("opencv_java3");
    }
    /////////////////////

Usage

Rotating(90 degrees only) images

import { transOrientRotate } from 'react-native-image-utils'

...

const outputOption = null;
const uri = 'https://i.ytimg.com/vi/YCaGYUIfdy4/maxresdefault.jpg';
const param = {
    degrees: 90
}

transOrientRotate(null, uri, param)).then((response) => {                        
                        // 'response.uri' is new path of created image
                      }).catch((err) => {
                        console.error(err)
                      });

Multiful Executions (for saving performace)

Multiful calling functions is heavy because it creates image files in each calls. Here is the way efficientious. (It runs in order.)

import { proxies } from 'react-native-image-utils'

...

const uri = 'https://i.ytimg.com/vi/YCaGYUIfdy4/maxresdefault.jpg';

const commands = []

// color scaling
commands.push({
    cmd: 'scaleCSB',
    param: {
        contrast: 50,
        saturation: 10,
        brightness: -30,
    }
})

// then, cropping
commands.push({
    cmd: 'cropPerspective',
    param: {
        topLeft: ...,
        topRight: ...,
        bottomLeft: ...,
        bottomRight: ...,
        width: ...,
        height: ...,
    }
})

// then, do something more...
commands.push({
    cmd: ...,
    param: {
        ...
    }
})

...

// You can also choose some options for output file
const OutputOption = {
    format: 'JPEG',
    quality: 0.9,
    ...
}

// Let's execute commands
// One execute to multiful commands. It creates image file just 1 time.
proxies(OutputOption, uri, commands)
.then(res => {
    // 'response.uri' is new URI of created image
})
.catch(err => {
    console.error(err)
})

Interfaces

NameDescription
cropPerspectivecropping by perspective
cropRoundedCornercropping rounded image
scaleCSBscaling color by Contrast, Saturation and Brightness. (In developping. It makes different result on ios and android.)
transOrientRotaterotating image by 90 degrees (90, 180, 270 only)
proxysingle command calling
proxiesmultiful command calling

and, you can check any interfaces and parameters in index.d.ts file.

Output Options

NameDescription
formatImage file format
qualityImage quality
pathSpecified path of new image file

Contribution

Welcome to anyone.

0.0.10

2 years ago

0.0.11

2 years ago

0.0.12

2 years ago

0.0.9

2 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago