npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

image-conversion-lims

v1.0.0

Published

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

Downloads

12

Readme

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 | 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:

// 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.

License

MIT