马赛克滤镜的size问题

来源:4-3 Canvas 更复杂的滤镜效果

cesiya23

2015-12-08 01:12

当size不是整数倍时,剩下的未被遍历的像素应当保持原有的rgb值不变。

下图,我的canvas的尺寸是400*280,选取的size为250;

按理来说,应该只有一个方块被填充了完全一样的颜色(马赛克化),其他的部分保持不变(因为马赛克算法没有遍历到,没有进行rgb变换),为何会出现下面的图呢?

5665bdab0001cd3c04630530.jpg

5665bdac0001761f05000148.jpg


写回答 关注

3回答

  • Q版的我
    2015-12-18 17:50:01

    当你将j的初始值设置为size的时候,即你不马赛克化x方向下前size值的图片,但是你会发现图片处理后的情况如下http://img.mukewang.com/5673d5760001b45f04010282.jpg

    可以得出结论,如果j+size的值大于图片的width时,即(j+dy)的值在大于图片的width,他就会从头开始获取像素值,所以才会出现三段图像,而不是我们预料的两段图像

  • Q版的我
    2015-12-18 17:24:09

    首先你的图像出现了黑边证明了你所给的size并不能整除你所要处理的图像,然后就没有然后了

  • echo_kinchao
    2015-12-08 09:04:27

    单位没给吧

Canvas玩转图像处理

canvas系列第三课,学会编写图像算法,一起玩转图像处理吧

60311 学习 · 124 问题

查看课程

相似问题