Ejemplo n.º 1
0
    starvstheforcesof: async function (msg) {
        let avatar = await Jimp.read(await getResource(msg.avatar));
        avatar.resize(700, 700);
        let color = colorThief.getColor(avatar);
        //color = color.map(a => a / 2);
        let lowest = Math.min(color[0], color[1], color[2]);
        color = color.map(a => Math.min(a - lowest, 32));
        console.debug(color);
        let bgImg = im(await getBufferFromJimp(avatar));
        bgImg.command('convert');
        bgImg.out('-matte').out('-virtual-pixel').out('transparent');
        bgImg.out('-extent');
        bgImg.out('1468x1656');
        bgImg.out('-distort');
        bgImg.out('Perspective');
        bgImg.out("0,0,0,208  700,0,1468,0  0,700,0,1326  700,700,1468,1656");
        let jBgImg = await Jimp.read(await getBufferFromIM(bgImg));
        jBgImg.resize(734, 828);

        let foreground = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `starvstheforcesof.png`));
        foreground.resize(960, 540);
        let actions = [];
        if (color[0] > 0) actions.push({ apply: 'red', params: [color[0]] });
        if (color[1] > 0) actions.push({ apply: 'green', params: [color[1]] });
        if (color[2] > 0) actions.push({ apply: 'blue', params: [color[2]] });
        foreground.color(actions);
        let img = new Jimp(960, 540);
        jBgImg.crop(0, 104, 600, 540);
        img.composite(jBgImg, 430, 0);
        img.composite(foreground, 0, 0);

        img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 2
0
    delete: async function (msg) {
        let buf = await createCaption({
            text: msg.input,
            font: 'whitneybold.ttf',
            size: '512x24',
            gravity: 'South',
            fill: '#f8f8f8'
        });

        let originalText = await Jimp.read(buf);
        let text = new Jimp(originalText.bitmap.width, originalText.bitmap.height + 8);
        text.composite(originalText, 0, 4);
        text.autocrop();
        let iterations = Math.ceil(text.bitmap.width / 64);
        console.debug(text.bitmap.width);
        let delete1 = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'delete1.png'));
        let delete2 = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'delete2.png'));
        let delete3 = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'delete3.png'));
        let cursor = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'cursor.png'));
        let width = 128 + (iterations * 64);
        let workspace = new Jimp(width, 84);
        workspace.composite(delete1, 0, 0);
        workspace.composite(delete3, width - 64, 0);
        for (let i = 0; i < iterations; i++) {
            workspace.composite(delete2, (i + 1) * 64, 0);
        }
        workspace.composite(text, 64 + ((iterations * 64 - text.bitmap.width + 32) / 2), 14 + ((48 - text.bitmap.height) / 2));
        workspace.composite(cursor, 64 + ((iterations * 64 - cursor.bitmap.width + 32) / 2), 48);
        //let img = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `SHIT${msg.plural ? 'S' : ''}.png`));
        //img.composite(text, 810, 31);

        workspace.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 3
0
    cah: async function (msg) {
        let blackCard = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'blackcard.png'));
        let whiteCard = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', 'whitecard.png'));

        let finalImg = new Jimp(183 * (msg.white.length + 1), 254);
        let blackCaption = await Jimp.read(await createCaption({
            font: 'arial.ttf',
            fill: '#ffffff',
            text: msg.black,
            size: '144x190',
            gravity: 'northwest'
        }));
        finalImg.composite(blackCard, 0, 0);
        finalImg.composite(blackCaption, 19, 19);

        for (let i = 0; i < msg.white.length; i++) {
            let whiteCaption = await Jimp.read(await createCaption({
                font: 'arial.ttf',
                fill: 'black',
                text: msg.white[i],
                size: '144x190',
                gravity: 'northwest'
            }));
            finalImg.composite(whiteCard, 183 * (i + 1), 0);
            finalImg.composite(whiteCaption, 183 * (i + 1) + 19, 19);
        }

        finalImg.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 4
0
    art: async function (msg) {
        let avatar = await Jimp.read(await getResource(msg.avatar));
        avatar.resize(370, 370);
        let foreground = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `art.png`));
        let img = new Jimp(1364, 1534);
        img.composite(avatar, 903, 92);
        img.composite(avatar, 903, 860);
        img.composite(foreground, 0, 0);

        img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 5
0
    clint: async function (msg) {
        let avatar = await Jimp.read(await getResource(msg.avatar));
        avatar.resize(700, 700);
        let bgImg = im(await getBufferFromJimp(avatar));
        bgImg.command('convert');
        bgImg.out('-matte').out('-virtual-pixel').out('transparent');
        bgImg.out('-distort');
        bgImg.out('Perspective');
        bgImg.out("0,0,0,132  700,0,330,0  0,700,0,530  700,700,330,700");
        let jBgImg = await Jimp.read(await getBufferFromIM(bgImg));
        let foreground = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `clint.png`));
        let img = new Jimp(1200, 675);
        img.composite(jBgImg, 782, 0);

        img.composite(foreground, 0, 0);

        img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 6
0
    clyde: async function (msg) {
        let img = im(864 - 150, 1000).command('convert');
        img.font(path.join(__dirname, '..', '..', 'res', 'img', 'fonts', 'whitney.ttf'), 20);
        img.out('-fill').out('#ffffff');
        img.out('-background').out('transparent');
        img.out('-gravity').out('west');
        img.out(`caption:${msg.text}`);
        let originalText = await Jimp.read(await getBufferFromIM(img));
        let date = new Date();
        let text = new Jimp(originalText.bitmap.width + 10, originalText.bitmap.height + 10);
        text.composite(originalText, 5, 5).autocrop().opacity(0.7);
        let height = 165 + text.bitmap.height;
        let canvas = new Jimp(864, height, 0x33363bff);
        let top = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `clydeTop.png`));
        let bottom = await Jimp.read(path.join(__dirname, '..', '..', 'res', 'img', `clydeBottom.png`));
        canvas.composite(top, 0, 0);
        canvas.composite(text, 118, 83);
        canvas.composite(bottom, 0, height - bottom.bitmap.height);

        canvas.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
            submitBuffer(msg.code, buffer);
        });
    },
Ejemplo n.º 7
0
 color: async function (msg) {
     let img = new Jimp(128, 128, msg.hex);
     img.getBuffer(Jimp.MIME_PNG, (err, buffer) => {
         submitBuffer(msg.code, buffer);
     });
 },