Socket
Socket
Sign inDemoInstall

image-conversion

Package Overview
Dependencies
0
Maintainers
1
Versions
24
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    image-conversion

A simple and easy-to-use JS image convert tools, which can specify size to compress the image.


Version published
Weekly downloads
8.6K
increased by9.44%
Maintainers
1
Install size
38.9 kB
Created
Weekly downloads
 

Readme

Source

image-conversion

Build Status Version License minified size

image-conversion is a simple and easy-to-use JS image convert tools, which provides many methods to convert between Image,Canvas,File and dataURL.

In addition,image-conversion can specify size to compress the image (test here).

Methods Map

Alt text

Getting started

Install

npm i image-conversion --save

# or 

yarn add image-conversion

Include the library

in browser:

<script src="https://cdn.jsdelivr.net/gh/WangYuLue/image-conversion/build/conversion.js"></script>

in CommonJS:

const imageConversion = require("image-conversion")

in ES6:

import * as imageConversion from 'image-conversion';

or

import {compress, compressAccurately} from 'image-conversion';

Use examples

<input id="demo" type="file" onchange="view()">
  1. Compress image to 200kb:
function view(){
  const file = document.getElementById('demo').files[0];
  console.log(file);
  imageConversion.compressAccurately(file,200).then(res=>{
    //The res in the promise is a compressed Blob type (which can be treated as a File type) file;
    console.log(res);
  })
}

// or use an async function
async function view() {
  const file = document.getElementById('demo').files[0];
  console.log(file);
  const res = await imageConversion.compressAccurately(file,200)
  console.log(res);
}
  1. Compress images at a quality of 0.9
function view(){
  const file = document.getElementById('demo').files[0];
  console.log(file);
  imageConversion.compress(file,0.9).then(res=>{
    console.log(res);
  })
}

Methods list

image-conversion provides many methods to convert between Image,Canvas,File and dataURL,as follow:

imagetoCanvas(image[, config]) → {Promise(Canvas)}

Description:

Convert an image object into a canvas object.

Parameters:
NameTypeAttributesDescription
imageimagea image object
configobjectoptionalwith this config you can zoom in, zoom out, and rotate the image
Example:
imageConversion.imagetoCanvas(image);

//or

imageConversion.imagetoCanvas(image,{
  width: 300,   //result image's width
  height: 200,  //result image's height
  orientation:2,//image rotation direction
  scale: 0.5,   //the zoom ratio relative to the original image, range 0-10;
                //Setting config.scale will override the settings of
                //config.width and config.height;
})

config.orientation has many options to choose,as follow:

OptionsOrientation
1
2horizontal flip
3180°
4vertical flip
5clockwise 90° + horizontal flip
6clockwise 90°
7clockwise 90° + vertical flip
8Counterclockwise 90°
Returns:

Promise that contains canvas object.

dataURLtoFile(dataURL[, type]) → {Promise(Blob)}

Description:

Convert a dataURL string to a File(Blob) object. you can determine the type of the File object when transitioning.

Parameters:
NameTypeAttributesDescription
dataURLstringa dataURL string
typestringoptionaldetermine the converted image type;
the options are "image/png", "image/jpeg", "image/gif".
Returns:

Promise that contains a Blob object.

compress(file, config) → {Promise(Blob)}

Description:

Compress a File(Blob) object.

Parameters:
NameTypeDescription
fileFile(Blob)a File(Blob) object
confignumber | objectif number type, range 0-1, indicate the image quality;
if object type,you can pass parameters to the imagetoCanvas and dataURLtoFile method;
Reference is as follow:
Tips:

If you compress png transparent images, please select 'image/png' type.

Example:
// number
imageConversion.compress(file,0.8)

//or

// object
imageConversion.compress(file,{
  quality: 0.8,
  type: "image/jpeg",
  width: 300,
  height: 200,
  orientation:2,
  scale: 0.5,
})
Returns:

Promise that contains a Blob object.

compressAccurately(file, config) → {Promise(Blob)}

Description:

Compress a File(Blob) object based on size.

Parameters:
NameTypeDescription
fileFile(Blob)a File(Blob) object
confignumber | objectif number type, specify the size of the compressed image(unit KB);
if object type,you can pass parameters to the imagetoCanvas and dataURLtoFile method;
Reference is as follow:
Tips:

If you compress png transparent images, please select 'image/png' type

Example:
// number
imageConversion.compressAccurately(file,100); //The compressed image size is 100kb
// object
imageConversion.compressAccurately(file,{
  size: 100,    //The compressed image size is 100kb
  accuracy: 0.9,//the accuracy of image compression size,range 0.8-0.99,default 0.95;
                //this means if the picture size is set to 1000Kb and the
                //accuracy is 0.9, the image with the compression result
                //of 900Kb-1100Kb is considered acceptable;
  type: "image/jpeg",
  width: 300,
  height: 200,
  orientation:2,
  scale: 0.5,
})
Returns:

Promise that contains a Blob object.

canvastoDataURL(canvas[, quality, type]) → {Promise(string)}

Description:

Convert a Canvas object into a dataURL string, this method can be compressed.

Parameters:
NameTypeAttributesDescription
canvascanvasa Canvas object
qualitynumberoptionalrange 0-1, indicate the image quality, default 0.92
typestringoptionaldetermine the converted image type;
the options are "image/png", "image/jpeg", "image/gif",default "image/jpeg"
Returns:

Promise that contains a dataURL string.

canvastoFile(canvas[, quality, type]) → {Promise(Blob)}

Description:

Convert a Canvas object into a Blob object, this method can be compressed.

Parameters:
NameTypeAttributesDescription
canvascanvasa Canvas object
qualitynumberoptionalrange 0-1, indicate the image quality, default 0.92
typestringoptionaldetermine the converted image type;
the options are "image/png", "image/jpeg", "image/gif",default "image/jpeg"
Returns:

Promise that contains a Blob object.

dataURLtoImage(dataURL) → {Promise(Image)}

Description:

Convert a dataURL string to a image object.

Parameters:
NameTypeDescription
dataURLstringa dataURL string
Returns:

Promise that contains a Image object.

downloadFile(file[, fileName])

Description:

Download the image to local.

Parameters:
NameTypeAttributesDescription
fileFile(Blob)a File(Blob) object
fileNamestringoptionaldownload file name, if none, timestamp named file

filetoDataURL(file) → {Promise(string)}

Description:

Convert a File(Blob) object to a dataURL string.

Parameters:
NameTypeDescription
fileFile(Blob)a File(Blob) object
Returns:

Promise that contains a dataURL string.

urltoBlob(url) → {Promise(Blob)}

Description:

Load the required Blob object through the image url.

Parameters:
NameTypeDescription
urlstringimage url
Returns:

Promise that contains a Blob object.

urltoImage(url) → {Promise(Image)}

Description:

Load the required Image object through the image url.

Parameters:
NameTypeDescription
urlstringimage url
Returns:

Promise that contains Image object.

License

MIT

Keywords

FAQs

Last updated on 23 Mar 2020

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc