image-conversion
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
Getting started
Install
npm i image-conversion --save # or yarn add image-conversion
Include the library
in browser:
in CommonJS:
const imageConversion =
in ES6:
;
or
;
Use examples
- Compress image to 200kb:
{ const file = documentfiles0; console; imageConversion} // or use an async function { const file = documentfiles0; console; const res = await imageConversion console;}
- Compress images at a quality of 0.9
{ const file = documentfiles0; console; imageConversion}
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; //or imageConversion
config.orientation
has many options to choose,as follow:
Options | Orientation |
---|---|
1 | 0° |
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:
// numberimageConversion //or // objectimageConversion
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:
// numberimageConversion; //The compressed image size is 100kb// objectimageConversion
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.