概述
JS 中可以操作 ImageData 对象,它表示一个图片,由像素值构成的对象。
可以直接通过 ImageData 对象操纵像素数据,直接读取或将数据数组写入该对象中。
ImageData 对象
ImageData对象中存储着canvas对象真实的像素数据,它包含以下几个只读属性:
- width 图片宽度,单位是像素
- height 图片高度,单位是像素
- data Uint8ClampedArray类型的一维数组,包含着RGBA格式的整型数据,范围在0至255之间(包括255)。
data属性返回一个 Uint8ClampedArray,它可以被使用作为查看初始像素数据。
- 每个像素用4个1bytes值(按照红,绿,蓝和透明值的顺序; 这就是"RGBA"格式) 来代表。
- 每个颜色值部份用0至255来代表。
- 每个部份被分配到一个在数组内连续的索引,左上角像素的红色部份在数组的索引0位置。
像素从左到右被处理,然后往下,遍历整个数组。 - Uint8ClampedArray 包含高度 × 宽度 × 4 bytes数据,索引值从0到(高度×宽度×4)-1
图例如下: