1.1.5 • Published 10 years ago

canvas-compress v1.1.5

Weekly downloads
182
License
MIT
Repository
github
Last release
10 years ago

CanvasCompress

Compressing image with HTML5 canvas.

Browser Compatibility

BrowserVersion
IE10+
Chrome22+
Firefox16+
Safari8+
Android Browser4+
Chrome for Android32+
iOS Safarri7+

Dependencies

  1. Exif.js
  2. ES6 Promise polyfill.

Install

Via npm:

npm install canvas-compress --save

Via bower:

bower install canvas-compress --save

Usage

    import CanvasCompress from 'canvas-compress';

    const compressor = new CanvasCompress({
        type: CanvasCompress.MIME.JPEG,
        width: 1000,
        height: 618,
        quality: 0.9,
    });

    compressor.process(fileBlob).then(({ source, result }) => {
        // const { blob, width, height } = source;
        const { blob, width, height } = result;
        ...
    });

Options

There're four optional properties for options object:

  • type: string: output type, default is image/jpeg

  • width: number: output width, default is 1000

  • height: number: ouput height, default is 618

  • quality: number: output quality, defalut is 0.9

Use third-party Promise

    CanvasCompress.usePromise(require('bluebird'));

Supported output MIME types

canvas-compress uses canvas.toDataUrl() method to convert canvas to binary. So the supported MIME types is:

  • 'image/png'
  • 'image/jpeg'
  • 'image/webp'

You can get MIME type via CanvasCompress.MIME, or use CanvasCompress.isSupportedType(MIMEtype: string) to check if it's a valid MIME type.

About alpha channel

Alpha channel is not available with MIME type image/jpeg, so when you are trying to turn an image into jpeg, you'll get a full white background(rgb(255, 255, 255)) instead of transparent black(rgba(0, 0, 0, 0)).

License

MIT.

1.1.5

10 years ago

1.1.4

10 years ago

1.1.3

10 years ago

1.1.2

10 years ago

1.1.1

10 years ago

1.1.0

10 years ago

1.0.2

10 years ago

1.0.1

10 years ago

1.0.0

10 years ago