HTML5 canvas JavaScript将图像拆分为6x6

时间:2019-05-16 13:07:31

标签: javascript image canvas

因此,基本上,我正在尝试将给定图像分成6x6(36)个不同的图像。 基本上就是我要完成的字体图像。

我认为分割图像时for循环中出现了一些错误。

我已经添加了我使用的代码,然后您可以在尝试显示的预览中亲自查看

A B C D
E F G H

不是

A A A A
A G F F

// Request animation frame
        const requestAnimationFrame = window.requestAnimationFrame
        || window.mozRequestAnimationFrame
        || window.webkitRequestAnimationFrame
        || window.msRequestAnimationFrame;

        // Setup canvas
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d');
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        // Font loading
        var base64 = [];
        var font = [];
        var img = new Image();
        img.onload = loadFont;
        img.src = ' data:image/png;base64,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';

        // Draw
        function draw() {

            requestAnimationFrame(draw);

            // Background
            ctx.fillStyle = '#222';
            ctx.fillRect(0, 0, canvas.width, canvas.height);

            ctx.drawImage(font['a'], 100, 100, 40, 40);
            ctx.drawImage(font['b'], 200, 100, 40, 40);
            ctx.drawImage(font['c'], 300, 100, 40, 40);
            ctx.drawImage(font['d'], 400, 100, 40, 40);

            ctx.drawImage(font['e'], 100, 300, 40, 40);
            ctx.drawImage(font['f'], 200, 300, 40, 40);
            ctx.drawImage(font['g'], 300, 300, 40, 40);
            ctx.drawImage(font['h'], 400, 300, 40, 40);
            
        }
        
        // Font loading
        // Split 6x6 bmp/png font map
        function loadFont() {

            // Array with order of characters
            // in the bmp image
            var arr = [
                ' ','f','l','r','x','!',
                'a','g','m','s','y','?',
                'b','h','n','t','z','-',
                'c','i','o','u','.','',
                'd','j','p','v',',','',
                'e','k','q','w','\'',''
            ];

            var w6 = img.width / 6;
            var h6 = img.height / 6;

            for (var i = 0; i < arr.length; i++) {

                var x = (-w6 * i) % (w6 * 6);
                var y = (h6 * i) <= h6 ? 0 : -h6;

                canvas.width = w6;
                canvas.height = h6;

                ctx.drawImage(this, x, y, w6 * 6, h6 * 6);
                base64.push(canvas.toDataURL());
                
            }

            // Reset W/H
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;

            // Create image objects of each part
            for (var i = 0; i < base64.length; i++) {
                font[arr[i]] = new Image();
                font[arr[i]].src = base64[i];
            }

        }

        // Resize
        window.addEventListener('resize', function(e) {
            canvas.width  = window.innerWidth;
            canvas.height = window.innerHeight;
        });

        draw();
<canvas id="canvas"></canvas>

我敢打赌,还有很多其他我可以做的优化,但这不是当前的问题。 :')

我在for循环中尝试了一些不同的方法,但没有任何方法可以像我想象的那样工作。分割图像时,有人看到我在做什么错吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

for循环中有2个问题,首先是x和y计算不正确。
您希望x在每一步中递增,并在每六个步后重置
对于y,您希望它每六个增加一次。
另一个问题是用于创建每个字符的drawImage,因为要剪切出部分源图像,所以必须使用drawImage

的9参数版本

// Request animation frame
        const requestAnimationFrame = window.requestAnimationFrame
        || window.mozRequestAnimationFrame
        || window.webkitRequestAnimationFrame
        || window.msRequestAnimationFrame;

        // Setup canvas
        var canvas = document.getElementById('canvas');
        var ctx = canvas.getContext('2d');
        canvas.width = window.innerWidth;
        canvas.height = window.innerHeight;

        // Font loading
        var base64 = [];
        var font = {};
        var img = new Image();
        img.onload = loadFont;
        img.src = 'data:image/png;base64,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';

        // Draw
        function draw() {

            requestAnimationFrame(draw);

            // Background
            ctx.fillStyle = '#222';
            ctx.fillRect(0, 0, canvas.width, canvas.height);

            ctx.drawImage(font['a'], 75, 50, 40, 40);
            ctx.drawImage(font['b'], 150, 50, 40, 40);
            ctx.drawImage(font['c'], 225, 50, 40, 40);
            ctx.drawImage(font['d'], 300, 50, 40, 40);

            ctx.drawImage(font['e'], 75, 150, 40, 40);
            ctx.drawImage(font['f'], 150, 150, 40, 40);
            ctx.drawImage(font['g'], 225, 150, 40, 40);
            ctx.drawImage(font['h'], 300, 150, 40, 40);
            
        }
        
        // Font loading
        // Split 6x6 bmp/png font map
        function loadFont() {

            // Array with order of characters
            // in the bmp image
            var arr = [
                ' ','f','l','r','x','!',
                'a','g','m','s','y','?',
                'b','h','n','t','z','-',
                'c','i','o','u','.','',
                'd','j','p','v',',','',
                'e','k','q','w','\'',''
            ];

            var w6 = img.width / 6;
            var h6 = img.height / 6;

            for (var i = 0; i < arr.length; i++) {

                var x = (w6 * (i%6));
                var y = (h6 * Math.floor(i/6));
                canvas.width = w6;
                canvas.height = h6;
                ctx.drawImage(this, x, y, w6, h6, 0, 0, w6, h6);
                base64.push(canvas.toDataURL());
                
            }

            // Reset W/H
            canvas.width = window.innerWidth;
            canvas.height = window.innerHeight;

            // Create image objects of each part
            for (var i = 0; i < base64.length; i++) {
                font[arr[i]] = new Image();
                font[arr[i]].src = base64[i];
            }

        draw();}

        // Resize
        window.addEventListener('resize', function(e) {
            canvas.width  = window.innerWidth;
            canvas.height = window.innerHeight;
        });
<canvas id="canvas"></canvas>