Skip to content

canvas疑点验证 #21

@jindada

Description

@jindada

主流浏览器中canvas的限制

chromesafari 下验证

1 单个canvas的最大面积都是 268435456 (16384 * 16384)

2 单边长度限制, 查阅资料显示最大宽高为32767,
实际验证的结果是 chrome 下的最大单边长度是 65535, safari 下的最大单边长度是 4194304

3 canvas总体积的限制:
chrome: 无限制
safari: 4096MB

验证方法:

const canvas = document.createElement("canvas");
canvas.width = 1000;
canvas.height = 1;

test();

function test() {
    canvas.width = canvas.width + 1;
    console.log("正在测试", canvas.width)
    const ctx = canvas.getContext('2d');
    ctx.fillStyle = 'blue';
    ctx.fillRect(0, 0, canvas.width, canvas.height);
    const isTestPass = ctx && ctx.getImageData(0, 0, 1, 1).data[3] !== 0;
    if (isTestPass) {
        console.log("测试通过");
        test();
    } else {
        console.log("测试失败", canvas.width);
    }   
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions