JavaScript画布可以像位图一样操作吗?它是否为此进行了优化

Can JavaScript canvas be manipulated like a bitmap, and is it optimized for that use?

本文关键字:是否 优化 操作 一样 布可 位图 JavaScript      更新时间:2023-09-26

JavaScript画布是否可以像标准位图一样进行操作(访问/修改像素并获取其大小)?这种使用是经过优化的,还是在需要时更快地处理普通的二维像素阵列并在画布上绘制?

绝对可以!请看这里:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Canvas_tutorial/Pixel_manipulation_with_canvas

至于第二个问题,根据像素文档,像素是一个一维数组。你需要用自己的2 x 2的方式做一个二维的呼啦圈。

摘自I82Much之前的SO回答(对我来说很好):

int row = i;
int col = j;
int offset = row * width + col;
color p = pixels[offset];

更多内容:如何使用2D阵列在像素上循环?
在这里:http://www.processing.org/reference/pixels.html

您可以使用getImageData()从画布上下文中获取像素数据数组。请记住,每个像素在阵列中占据4个空间(用于红色、绿色、蓝色和alpha)。然后,一旦您根据自己的喜好更改了数组,就可以使用putImageData()将数据放回。