java如何在处理中创建多色光栅化图片
我在Youtube上学习了本教程,并成功地为黑白图片添加了颜色。但是,我的意图是创建多色或渐变效果(如here或here),而不是在移动光标时切换颜色
我对处理非常陌生,我尝试过使用变量,但没有成功
以下是草图的代码片段: `
PImage img;
void setup() {
size(598,336);
colorMode(HSB);
img = loadImage("picture-in-data-folder.jpg");
img.resize(598,336);
//ellipseMode(RADIUS);
frameRate(30);
}
void draw() {
background(255);
noStroke();
// fill(0);
float tiles = mouseX/10;
float tileSize = width/tiles;
// color section
fill(color(tiles, 255, 255));
tileSize++;
if (tiles > width / 2) {
tileSize = 0;
}
// end color section
translate(tileSize/2, tileSize/2);
for (int x = 0; x < tiles; x++) {
for (int y = 0; y < tiles; y++) {
color c = img.get(int(x*tileSize),int(y*tileSize));
float size = map(brightness(c), 0, 255, tileSize, 0);
ellipse(x*tileSize, y*tileSize, size, size);
// image(img, mouseX, mouseY);
}
}
}
如果您有任何提示,或者您能提供建议,我将不胜感激
谢谢
# 1 楼答案
简短回答:您需要在
for
循环中放置一个fill()
命令长答覆:
现在,您的代码正在执行以下操作:
mouseX
定义tiles
(tiles, 255, 255)
我想你想要它做的是这样的:
(21, 255, 255)
(或任何您想要的第一种颜色)为了做到这一点,您需要将一个命令放入
for
循环中,以更改填充颜色。有一种方法可以做到这一点:我刚刚添加了fill命令作为
x
的一个函数,但是您可以随意使用它。为了使其成为梯度,它需要随x
或y
而有所变化