GithubHelp home page GithubHelp logo

mmmulani / react-image-file-resizer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from onurzorluer/react-image-file-resizer

0.0 1.0 0.0 2.61 MB

Resize Local Images with React πŸŒ„ πŸŒ…

License: MIT License

JavaScript 100.00%

react-image-file-resizer's Introduction

React Image File Resizer

All Contributors

Build Status npm version

react-image-file-resizer is a react module that can rescaled local images.

  • You can change image's width, height, format, rotation and quality.
  • It returns resized image's new base64 URI or Blob. The URI can be used as the source of an <Image> component.

Setup

Install the package:

npm i react-image-file-resizer

or

yarn add react-image-file-resizer

Usage

import Resizer from "react-image-file-resizer";

Resizer.imageFileResizer(
  file, // Is the file of the image which will resized.
  maxWidth, // Is the maxWidth of the resized new image.
  maxHeight, // Is the maxHeight of the resized new image.
  compressFormat, // Is the compressFormat of the resized new image.
  quality, // Is the quality of the resized new image.
  rotation, // Is the degree of clockwise rotation to apply to uploaded image.
  responseUriFunc, // Is the callBack function of the resized new image URI.
  outputType, // Is the output type of the resized new image.
  minWidth, // Is the minWidth of the resized new image.
  minHeight // Is the minHeight of the resized new image.
);

Example 1

First, wrap the resizer:

import Resizer from "react-image-file-resizer";

const resizeFile = (file) =>
  new Promise((resolve) => {
    Resizer.imageFileResizer(
      file,
      300,
      300,
      "JPEG",
      100,
      0,
      (uri) => {
        resolve(uri);
      },
      "base64"
    );
  });

And then use it in your async function:

const onChange = async (event) => {
  try {
    const file = event.target.files[0];
    const image = await resizeFile(file);
    console.log(image);
  } catch (err) {
    console.log(err);
  }
};

Example 2

import React, { Component } from "react";
import Resizer from "react-image-file-resizer";

class App extends Component {
  constructor(props) {
    super(props);
    this.fileChangedHandler = this.fileChangedHandler.bind(this);
    this.state = {
      newImage: "",
    };
  }

  fileChangedHandler(event) {
    var fileInput = false;
    if (event.target.files[0]) {
      fileInput = true;
    }
    if (fileInput) {
      try {
        Resizer.imageFileResizer(
          event.target.files[0],
          300,
          300,
          "JPEG",
          100,
          0,
          (uri) => {
            console.log(uri);
            this.setState({ newImage: uri });
          },
          "base64",
          200,
          200
        );
      } catch (err) {
        console.log(err);
      }
    }
  }

  render() {
    return (
      <div className="App">
        <input type="file" onChange={this.fileChangedHandler} />
        <img src={this.state.newImage} alt="" />
      </div>
    );
  }
}

export default App;
Option Description Type Required
file Path of image file object Yes
maxWidth New image max width (ratio is preserved) number Yes
maxHeight New image max height (ratio is preserved) number Yes
compressFormat Can be either JPEG, PNG or WEBP. string Yes
quality A number between 0 and 100. Used for the JPEG compression.(if no compress is needed, just set it to 100) number Yes
rotation Degree of clockwise rotation to apply to the image. Rotation is limited to multiples of 90 degrees.(if no rotation is needed, just set it to 0) (0, 90, 180, 270, 360) number Yes
responseUriFunc Callback function of URI. Returns URI of resized image's base64 format. ex: uri => {console.log(uri)}); function Yes
outputType Can be either base64, blob or file.(Default type is base64) string No
minWidth New image min width (ratio is preserved, defaults to null) number No
minHeight New image min height (ratio is preserved, defaults to null) number No

License

MIT

Contributors

Thanks goes to these wonderful people (emoji key):


Ahmad Maleki

πŸ’» 🚧

Martin Vyőňovský

πŸ’» 🚧

Nadun Chamikara

πŸ’» 🚧

Shubham Zanwar

πŸ“–

Onur Γ–nder

πŸ’» 🚧

Yunus Emre

πŸ’» 🚧

Juan

πŸ’» 🚧

Sreang Rathanak

πŸ’» 🚧

Andres Rivera

πŸ’» 🚧

This project follows the all-contributors specification. Contributions of any kind welcome!

react-image-file-resizer's People

Contributors

ahmadmaleki avatar allcontributors[bot] avatar andresriveratoro avatar dependabot[bot] avatar martinvysnovsky avatar mmmulani avatar nadunc avatar onderonur avatar onurzorluer avatar overstruck avatar rathanaksreang avatar shubhamzanwar avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.