• Zack
    2020-12-08
    lib/util.js 请问 traverse 函数传递给 pass 的 rgb 值为什么要除以255呢? export function traverse(imageData, pass) { const {width, height, data} = imageData; console.log('data: ', data); for(let i = 0; i < width * height * 4; i += 4) { const [r, g, b, a] = pass({ r: data[i] / 255, // 每个通道是 8 个比特位,也就是 0~255 的十进制数值 g: data[i + 1] / 255, b: data[i + 2] / 255, a: data[i + 3] / 255, index: i, width, height, x: ((i / 4) % width) / width, y: Math.floor(i / 4 / width) / height }); data.set([r, g, b, a].map(v => Math.round(v * 255)), i); } return imageData; }

    作者回复: 因为这里做了归一化,接受的是0~1的值,方便矩阵运算

    
    1
  • 张旭
    2020-07-21
    老师,颜色矩阵为什么是4*5,不是4*4呢?

    作者回复: 实际上4*5是一个简化了最后一行的5*5的矩阵,因为4*4矩阵的仿射变换用5*5齐次矩阵来表示。这个和为什么css的transform-matix是2*3道理一样

    共 3 条评论
    1
  • 秋谷
    2020-12-16
    老师,灰度矩阵那块,矩阵运算都明白了,但是最后得出的颜色矩阵[ r + 1 - p, g, b, 0, 0, r, g + 1 - p, b, 0, 0, r, g, b + 1 - p, 0, 0, 0, 0, 0, 1, 0, ],这个是怎么算的呀

    作者回复: 这个你再仔细想一下,不是很难哦

    共 2 条评论
    
  • 极小福
    2020-09-17
    这节的内容很实用、也很深入,值得多看几遍,感谢
    
    3
  • Mingzhang
    2020-08-10
    真的是干货满满,谢谢!
    
    1
  • 胖橘猫
    2022-03-06
    如果实时进行滤镜操作那么大的数组遍历没有性能问题吗?有解决思路吗?
    
    
  • 式溪Chon W. Lam
    2021-07-08
    老师,不太明白最后高斯糢糊部分,可否加些注释
    
    
  • 番薯
    2021-02-14
    小试牛刀之图片局部放大器:https://github.com/sfyan/Pixel-Zoom
    
    