Java 如何在图像处理中创建多色光栅化图像
我继续学习本教程,并成功地为黑白图片添加了颜色。但是,我的意图是创建多色或渐变效果(如或),而不是在移动光标时切换颜色 我对处理非常陌生,我尝试过使用变量,但没有成功 以下是草图的代码片段: `Java 如何在图像处理中创建多色光栅化图像,java,processing,Java,Processing,我继续学习本教程,并成功地为黑白图片添加了颜色。但是,我的意图是创建多色或渐变效果(如或),而不是在移动光标时切换颜色 我对处理非常陌生,我尝试过使用变量,但没有成功 以下是草图的代码片段: ` PImage-img; 无效设置(){ 规模(598336); 彩色模式(HSB); img=loadImage(“data folder.jpg中的图片”); 调整图像大小(598336); //椭圆模型(半径); 帧率(30); } 作废提款(){ 背景(255); 仰泳(); //填充(0); 浮
PImage-img;
无效设置(){
规模(598336);
彩色模式(HSB);
img=loadImage(“data folder.jpg中的图片”);
调整图像大小(598336);
//椭圆模型(半径);
帧率(30);
}
作废提款(){
背景(255);
仰泳();
//填充(0);
浮法瓷砖=mouseX/10;
浮动瓷砖尺寸=宽度/瓷砖;
//颜色部分
填充(颜色(瓷砖,255,255));
tileSize++;
如果(瓷砖>宽度/2){
tileSize=0;
}
//结束颜色部分
翻译(tileSize/2,tileSize/2);
对于(int x=0;x
如果您有任何提示,或者您能提供建议,我将不胜感激
谢谢。简短回答:您需要在
for
循环中放入fill()
命令
长答覆:
现在,您的代码正在执行以下操作:
mouseX
(瓷砖,255,255)
(21、255、255)
(或第一种颜色所需的任何颜色)for
循环中,该循环将更改填充颜色。有一种方法可以做到这一点:
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);
fill(map(x, 0, tiles, 0, 255), 255, 255);
ellipse(x*tileSize, y*tileSize, size, size);
}
}
for(int x=0;x
我刚刚添加了fill命令作为
x
的一个函数,但是您可以根据自己的需要进行修改。为了使其成为渐变,它需要随着x
或y
的变化而有所变化。似乎您已经用鼠标更改了平铺的数量。你只是想把每个椭圆渲染成一个径向渐变吗?我的目的是将整个瓷砖组着色为一种渐变色
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);
fill(map(x, 0, tiles, 0, 255), 255, 255);
ellipse(x*tileSize, y*tileSize, size, size);
}
}