1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
| 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;
| }
| }
| });
|
|