JavaScript rysowanie obrazka na podstawie danych z API SteamJS

in #polish7 years ago

Tak mnie naszło by coś jeszcze dopisać do skryptu co zrobiłem wcześniej. Inspiracją był steemd, gdzie zobaczyłem że każdy użytkownik ma swojego niepowtarzalnego awatara.

Postanowiłem zrobić taki wykres, na którym zamiast słupków będą wygenerowane awatary. Efekt widać poniżej:


pobrane (7).png


Link do skryptu:
https://fatmusicpl.github.io/voters.github.io/

Link to repozytorium:
https://github.com/fatmusicpl/voters.github.io

Całość nie jest skomplikowana:

function drawImages() {
    ctx = demo.getContext('2d');
    var x = 0;
    var max = parseInt(150 /  voters[0].SBD);
    voters.forEach(function(vote) {
        if (vote.SBD >= 0.001) {
            let size = 24 + parseInt(max * vote.SBD);
            drawImage(vote.name, size, x, 150 - size);
            x = x + (size / 3);
        }
    });
    ctx.font = "32px Comic Sans MS";
    ctx.fillStyle = "#337ab7";
    ctx.textAlign = "center";
    ctx.fillText('@' + author + ' voters', 600, 30); 
    ctx.font = "18px Comic Sans MS";
    ctx.fillText(summarySBD + ' SBD', 600, 55); 
    ctx.fillText(summaryVotes + ' Votes', 600, 75); 
    ctx.fillText(summaryVoters + ' Voters', 600, 95); 
}

function drawImage(name, size, x, y) {
    var img = new Image();
    img.crossOrigin = 'anonymous';
    img.src = 'https://robohash.org/' + name.replace("@", "") + '.png?size=128x128';
    img.onload = function() {
        ctx.drawImage(img, x, y, size, size);
    }
}

Źródła:
https://steemd.com/ - Inspiracja
https://robohash.org - Obrazki
https://www.w3schools.com/graphics/canvas_text.asp
https://stackoverflow.com/questions/18770039/put-text-on-an-image-and-save-as-image

Sort:  

Śmieszne trochę, ale bardzo fajne. Plus za pomysłowość.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63618.84
ETH 2623.39
USDT 1.00
SBD 2.78