thedesk/app/node_modules/@jimp/jpeg/src/index.js
2019-09-12 23:38:13 +09:00

49 lines
1.1 KiB
JavaScript

import JPEG from 'jpeg-js';
import { throwError, isNodePattern } from '@jimp/utils';
const MIME_TYPE = 'image/jpeg';
export default () => ({
mime: { [MIME_TYPE]: ['jpeg', 'jpg', 'jpe'] },
constants: {
MIME_JPEG: MIME_TYPE
},
decoders: {
[MIME_TYPE]: JPEG.decode
},
encoders: {
[MIME_TYPE]: image => JPEG.encode(image.bitmap, image._quality).data
},
class: {
// The quality to be used when saving JPEG images
_quality: 100,
/**
* Sets the quality of the image when saving as JPEG format (default is 100)
* @param {number} n The quality to use 0-100
* @param {function(Error, Jimp)} cb (optional) a callback for when complete
* @returns {Jimp} this for chaining of methods
*/
quality(n, cb) {
if (typeof n !== 'number') {
return throwError.call(this, 'n must be a number', cb);
}
if (n < 0 || n > 100) {
return throwError.call(this, 'n must be a number 0 - 100', cb);
}
this._quality = Math.round(n);
if (isNodePattern(cb)) {
cb.call(this, null, this);
}
return this;
}
}
});