Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
MR414N-ID
GitHub Repository: MR414N-ID/botku2
Path: blob/master/node_modules/@jimp/gif/src/index.js
1126 views
1
import GIF from 'omggif';
2
import { GifUtil, GifFrame, BitmapImage, GifCodec } from 'gifwrap';
3
4
const MIME_TYPE = 'image/gif';
5
6
export default () => ({
7
mime: { [MIME_TYPE]: ['gif'] },
8
9
constants: {
10
MIME_GIF: MIME_TYPE
11
},
12
13
decoders: {
14
[MIME_TYPE]: data => {
15
const gifObj = new GIF.GifReader(data);
16
const gifData = Buffer.alloc(gifObj.width * gifObj.height * 4);
17
18
gifObj.decodeAndBlitFrameRGBA(0, gifData);
19
20
return {
21
data: gifData,
22
width: gifObj.width,
23
height: gifObj.height
24
};
25
}
26
},
27
28
encoders: {
29
[MIME_TYPE]: data => {
30
const bitmap = new BitmapImage(data.bitmap);
31
GifUtil.quantizeDekker(bitmap, 256);
32
const newFrame = new GifFrame(bitmap);
33
const gifCodec = new GifCodec();
34
return gifCodec.encodeGif([newFrame], {}).then(newGif => {
35
return newGif.buffer;
36
});
37
}
38
}
39
});
40
41