react-img-input

React Input Component with build in Compress and Cropping features

Usage no npm install needed!

<script type="module">
  import reactImgInput from 'https://cdn.skypack.dev/react-img-input';
</script>

README

react-img-input

NPM   License   JavaScript Style Guide   npm downloads   Bundle size   GitHub stars

Another cool React Component Library

This Library is a simply a input tag. It takes the input file compresses it, crop it and returns the Base64 of the input image. Almost all projects need such functionality that allows user to select, compress, crop and preview the images before uploding it. This Library is a timesaver (sometimes lifesaver 😅).

🚀 See it in Action

Install

react-img-input

npm install --save react-img-input

Usage

Default Usage

import React from 'react'

import { ReactImgInput } from 'react-img-input'
import 'react-img-input/dist/index.css'

const config = {
  size: 120,
  captureBtn: {
    bg: 'crimson',
    color: '#fff',
  },
  cropBtn: {
    bg: '#F4B230',
    color: '#fff',
  },
  defaultImg: '',
  theme: 'light',
  compression: {
    maxSizeMB: 0.1,
    maxWidthOrHeight: 500,
    useWebWorker: true,
  }
}

const App = () => {
  return <ReactImgInput config={config} setOutput={console.log} />
}
export default App

Parameter Description Default Value Valid Values
captureBtn bg Background color for the button with + icon #3498DB Any color
color Text color for the button with + icon #FFF Any color
cropBtn bg Background color for the button with + icon #F4B230 Any color
color Text color for the button with crosschair icon #FFF Any color
size Size of the preview image 150px All the units
defaultImg Placeholder image for preview dataURL(base64), foreign link, Anything that goes within
<img `src=" "`>
theme Theme dark/light light dark / light
Parameters for browser-image-compression
compression maxSizeMB Maximum size of the image after compression. 0.1 Number
maxWidthOrHeight compressedFile will scale down by ratio to a point that width or height is smaller than maxWidthOrHeight. 1000 Number
onProgress A function takes one progress argument. percentage from 0 to 100
useWebWorker Use multi-thread web worker, fallback to run in main-thread, true true / false
maxIteration Max number of iteration to compress the image. 10 Number
exifOrientation see https://stackoverflow.com/a/32490603/10395024. Number
fileType FileType override. image/png, image/jpeg, image/jpg
initialQuality Initial quality value. 1 between 0 and 1

Support

Buy Me A Coffee

License

This project is licensed under the MIT License - see the LICENSE file for details