怎么用processing做马赛克图,说下原理,不是PS滤镜。。。
发布网友
发布时间:2022-04-25 02:09
我来回答
共2个回答
热心网友
时间:2023-10-20 19:23
读取图片: img = loadImage("example.jpg");
读取像素: loadPixels(); //或者(与size不一致): img.loadPixels();
循环(每8个像素1个马赛克): for (int y=0; y<= height; y+=8) { for (int x=0; x<= width; x+=8) { //嵌套循环,大括号开始
定位loc读取rgb: float r=red(img.pixels[loc]); float g=green(img.pixels[loc]); float b=blue(img.pixels[loc]);
根据读取的rgb指定马赛克颜色: fill(r,g,b,);
比8个像素小一些,画马赛克: ellipse(x, y, 7, 7); }} // 或者: rect(x, y, x+7, y+7); }}
热心网友
时间:2023-10-20 19:23
很简单,使用双重循环对图片的点取样,然后显示出来就可以了。