javascript - Canvas getImageData().data 返回半张图像

标签 javascript html canvas

我正在尝试从图像源生成像素化 Canvas - 但 getImageData() 函数有一个奇怪的行为 - 在高于我的 Canvas 的图像上,我只获得最大高度数据[最大高度*最大高度的平方]。 我在这里缺少什么吗?

function generatePixels(){
    const pixel_size = 10;
    const x = 0; const y = 0;
    const w = temp_ctx.canvas.width;
    const h = temp_ctx.canvas.height;

    let min_width = w,
    min_height = h,
    max_width = 0, max_height = 0;

    for (var j = y; j < (y+h); j += pixel_size) {
        for (var i = x; i < (x+w); i += pixel_size) {

            // get current pixel image data (x,y,10,10);
            var data = temp_ctx.getImageData(j, i, pixel_size, pixel_size).data;

            // draw pixel on rendered canvas 
            rendered_ctx.fillStyle = '#' + (data[2] | (data[1] << 8) | (data[0] << 16) | (1 << 24)).toString(16).slice(1);
            rendered_ctx.fillRect((j + pixel_size), (i + pixel_size), 10, 10);

      }
    }
}

您可以在此处找到代码示例: https://codepen.io/AceDesigns/pen/dZEmjZ

最佳答案

请在下面找到可行的代码。问题在于 for 循环条件。

for (var j = y; j < (y+h); j += 像素大小) { for (var i = x; i < (x+w); i += Pixel_size) {

关于javascript - Canvas getImageData().data 返回半张图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47691610/

相关文章:

javascript - 类型错误 : f is not a function after Babel Transpilation in Node

javascript - 图标 : Upon click trigger action to search

android - 将 Canvas 另存为图像到手机存储 Phonegap

javascript - 如果长度是偶数,为什么细虚线显示为实线?

javascript - HTML5 Canvas 初学者,使用图层吗?

javascript - 在 JavaScript 和 Dynamics CRM 中设置正确的时区

javascript + django - 类型错误 : X is undefined

javascript - sitecore 的 treeviewex 如何与 javascript 相关联?

javascript - 如何仅删除每个主菜单的第一个二级子菜单的 margin-top

javascript - Angular 与静态页面或组件? (成分太多?)