|
vivaxy's Blog |
博客
PNG 解码是指将一张 PNG 图片的二进制数据转换成像素点数据 ImageData。 PNG 的二进制数据有很多方式获取。 在浏览器中可以得到 ArrayBuffer 类型的二进制数据: fetch(url).then(res => res.arrayBuffer()).then(res => { console.log(arrayBuffer) }); 在 Node.js 中,可以得到 Buffer 类型的二进制数据: console.log(fs.readFileSync(filename)) 在微信小程序中可以得到 ArrayBuffer 类型的二进制数据: wx.request({ url, responseType: 'arraybuffer', success: (res) => { console.log(res.data); }, }); ImageData.data 是一个 Uint8ClampedArray,其中以 R、G、B、A 的顺序保存了像素点的数据,每四项表示一个像素点。 Uint8ClampedArray 是一种 TypedArray,存储了 0-255 的数据。其中 U 表示 unsigned,也就是无符号(都是正值)。8...