123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- 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;
- }
- }
- });
|