🔔 Alert..!! Get 2 Month Free Cloud Hosting With $200 Bonus From Digital Ocean ACTIVATE DEAL

A Javascript library for client-side image compressing. Works with React.js.

Image React

Documentation

compressor-img

Version

Javascript library for client side image compressing

Table of contents

Getting started

Install

npm install compressor-img --save  or  yarn add compressor-img

Usage

Syntax

const params = {   onSuccess: response => {},   scale: 70,   quality: 70,   originalImage: "data:image/jpeg;base64,/9j/4RiDRXhpZgAATU0AKgA..." }; new ImageCompressor(params);

params

scale (Number) : The percentage of image scaling it starts from 1 to 100.

quality (Number) : The percentage of image quality it starts from 1 to 100.

originalImage (base64) : Image in base64 , example : "data:image/jpeg;base64,/9j/4RiDRXhpZgAATU0AKgA...".

holdCompress (bool)(default value false) : set this variable a true , if you dont want to start compress the image when the class ImageCompressor is instantiated example .

onSuccess (Function) : Callback after Compress the image. It will pass original file (base64) and compressed file (base64).

Example using holdcompress params

const params = {   onSuccess: response => {},   scale: 70,   quality: 70,   originalImage: "data:image/jpeg;base64,/9j/4RiDRXhpZgAATU0AKgA...",   holdCompress: true }; const instanceImageCompressor = new ImageCompressor(params); instanceImageCompressor.startCompress();

Example with React

import React, { Component } from "react"; import { ImageCompressor, getImageSize } from "compressor-img";  class UploadFile extends Component {   constructor(props) {     super(props);     this.state = {       originalImage: null,       sizeOriganleImage: null,       compressedImage: null,       sizeCompressedImage: null     };   }    handleImageChange = event => {     event.preventDefault();      if (event.target.files.length !== 0) {       let reader = new FileReader();       let file = event.target.files[0];        reader.onloadend = () => {         let imageCompressor = new ImageCompressor({           onSuccess: response => {             this.setState({               originalImage: response.original,               sizeOriganleImage: getImageSize(response.original),               compressedImage: response.compressed,               sizeCompressedImage: getImageSize(response.compressed)             });           },           scale: 70,           quality: 70,           originalImage: reader.result         });       };        reader.readAsDataURL(file);     }   };    render() {     return (       <div className="upload-file-container">         <input id="file" type="file" onChange={this.handleImageChange} />         <div className="display-compressed-image">           {this.state.sizeOriganleImage &&             this.state.sizeOriganleImage +               " kb  -> " +               this.state.sizeCompressedImage +               " kb"}           {this.state.compressedImage && (             <img               style={{                 maxWidth: "600px",                 maxheight: "400px"               }}               src={this.state.compressedImage}             />           )}         </div>       </div>     );   } } export default UploadFile;

⬆ back to top

Browser support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Opera (latest)
  • Edge (latest)

License

MIT © youssef maghzaz

⬆ back to top


You May Also Like