vue-image-conversion
TypeScript icon, indicating that this package has built-in type declarations

2.1.2 • Public • Published

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:

Name Type Attributes Description
image image a image object
config object optional with 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:

Options Orientation
1
2 horizontal flip
3 180°
4 vertical flip
5 clockwise 90° + horizontal flip
6 clockwise 90°
7 clockwise 90° + vertical flip
8 Counterclockwise 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:

Name Type Attributes Description
dataURL string a dataURL string
type string optional determine 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:

Name Type Description
file File(Blob) a File(Blob) object
config number | object if 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:

Name Type Description
file File(Blob) a File(Blob) object
config number | object if 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:

Name Type Attributes Description
canvas canvas a Canvas object
quality number optional range 0-1, indicate the image quality, default 0.92
type string optional determine 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:

Name Type Attributes Description
canvas canvas a Canvas object
quality number optional range 0-1, indicate the image quality, default 0.92
type string optional determine 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:

Name Type Description
dataURL string a dataURL string

Returns:

Promise that contains a Image object.

downloadFile(file[, fileName])

Description:

Download the image to local.

Parameters:

Name Type Attributes Description
file File(Blob) a File(Blob) object
fileName string optional download file name, if none, timestamp named file

filetoDataURL(file) → {Promise(string)}

Description:

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

Parameters:

Name Type Description
file File(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:

Name Type Description
url string image url

Returns:

Promise that contains a Blob object.

urltoImage(url) → {Promise(Image)}

Description:

Load the required Image object through the image url.

Parameters:

Name Type Description
url string image url

Returns:

Promise that contains Image object.

Compatibility

image-conversion depend native Promise and Fetch function, Therefore IE 11 is not supported. Other old browser version,check Promise and fetch support.

License

MIT

Dependencies (0)

    Dev Dependencies (14)

    Package Sidebar

    Install

    npm i vue-image-conversion

    Weekly Downloads

    2

    Version

    2.1.2

    License

    MIT

    Unpacked Size

    40.5 kB

    Total Files

    21

    Last publish

    Collaborators

    • yuri1996