Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在图像处理中创建多色光栅化图像_Java_Processing - Fatal编程技术网

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);
      }
    }