Encoding and decoding images via libjpeg in JavaScript
libjpeg version: 9d of 12-Jan-2020
installing with npm:
npm install jpeg-asm --save
OR
Use /dist/jpegasm.js
for a browser-friendly version of the library.
const jpegasm = require('jpeg-asm');
const buf = new ArrayBuffer(/* ... */);
// init buffer
jpegasm.decode(buf, (err, decoded) => {
// err: Error
// OR
// decoded: { buffer: ArrayBuffer, width: number, height: number }
});
const jpegasm = require('jpeg-asm');
const buf = new ArrayBuffer(/* ... */);
// init buffer
const options = {
width: X,
height: Y,
quality: 80
};
jpegasm.encode(buf, options, (err, encoded) => {
// err: Error
// OR
// encoded: ArrayBuffer
});
The examples directory contains an example how to encode and decode an image in a browser.
Decodes a JPEG image.
Arguments:
buf
- source buffer:ArrayBuffer
cb
- a callback that gets 2 arguments:err
- decodingError
decoded
- an object that describes the decoded image:{ width: number, height: number, data: ArrayBuffer }
where data represents colors in RGB format.
jpegasm.decode(buf, (err, decoded) => { /* ... */ });
Encodes buffer to a JPEG format.
Arguments:
buf
- source buffer:ArrayBuffer
[options]
- an optional object with settings to encode an image. Supported options:width
- width of the image inbuf
height
- height of the image inbuf
quality
- a numberic value [0-100], describes quality of encoding. 0 - low quality, 100 - high quality.
cb
- a callback that gets 2 arguments:err
- encodingError
encoded
- an object that describes the encoded image:{ width: number, height: number, data: ArrayBuffer }
const encoded = jpegasm.encode(buf, options, (err, encoded) => { /* ... */ });
To run the tests for jpeg-asm:
npm test
To compile libjpeg to javascript:
npm run build:debug
# OR
npm run build:release
Compiling details.
To build a browser-friendly version of the library, run:
npm run browser:debug
# OR
npm run browser:release
[Grigorii Chudnov] (mailto:[email protected])
jpeg-asm distributed under the The MIT License (MIT).
libjpeg has a custom BSD-like license (free software).