【问题标题】:Manipulate RGBA Javascript操作 RGBA Javascript
【发布时间】:2017-12-10 08:49:33
【问题描述】:

在 Javascript 中,我有一个 Uint8Array() RGBA 图像,这是 console.log 的:

这是 rgba 数组作为 HTML 字符串的图像:

是否可以操纵这个数组,例如。改变颜色? 感谢您的帮助!

【问题讨论】:

    标签: javascript rgb uint8array


    【解决方案1】:

    这是一个将像素绘制到这种数组的 JS 算法:

    function changeColor(x, y, c)
    {
       colorArray[(x * 4) + (y * (imageWidth * 4))] = c.r;
       colorArray[(x * 4) + (y * (imageWidth * 4)) + 1] = c.g;
       colorArray[(x * 4) + (y * (imageWidth * 4)) + 2] = c.b;
       colorArray[(x * 4) + (y * (imageWidth * 4)) + 3] = c.a;
    }
    

    其中 x 和 y 是您要更改的像素的坐标,imageWidth 是此数组生成的图像的宽度,c 是您要将像素更改为的颜色,colorArray 是数组本身。

    【讨论】:

    • 将上述算法应用于rgba 数组(即将“colorArray”替换为“rgba”,将“imageWidth”替换为实际图像的宽度)。 PS:请不要发布其他问题作为您自己问题的答案。如果您想在答案中了解某些内容,请在其下方发表评论。
    • 我确实像你说的那样,我尝试了 console.log(c),然后我得到错误 - “TypeError: c is undefined”。感谢您的帮助!
    • c 是您要更改为的颜色。创建具有属性 r、g、b 和 a 的 Color 类型和具有参数 (r、g、b、a) 的构造函数,然后声明一个变量 c,如下所示:var c = new Color(r, g, b, a)
    • 现在我进入 console.log 错误 =“颜色未定义”。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2015-07-25
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多