js canvas 批量插入图片
展开阅读全文

js canvas 批量插入图片

    var canvas = document.getElementById('canvas');
    var ctx = canvas.getContext('2d');
    var imageUrls  = json.msg;
    var imagesLoaded = 0;
    var loadImages = (urls, callback) => {
        var images = [];
        var loader = (url) => {
            var img = new Image();
            img.onload = () => {
                images.push(img);
                if (++imagesLoaded === urls.length && callback) {
                    callback(images);
                }
            };
            img.src = url;
        };

        urls.forEach(loader);
    };
    var drawImages = (images) => {
    var canvasWidth = canvas.width;
    var canvasHeight = canvas.height;
    var imageWidth = canvasWidth / images.length;
    var imageHeight = canvasHeight;
    let x = 0;

    images.forEach((img) => {
        ctx.drawImage(img, x, 0, imageWidth, imageHeight);
        x += imageWidth;
    });
};

// 使用函数
loadImages(imageUrls, (images) => {
    drawImages(images);
});