着色单个像素

时间:2017-09-19 09:18:23

标签: java colors rgb pixels

我正在尝试用Java编写一个程序,通过将每个RGB通道的值加1,直到达到255,然后在下一个RGB通道上添加一个RGB,通过用RGB着色单个像素来生成图像。

这是一个例子:

RED设置为0 绿色设置为0 BLUE设置为0

  1. RED在第一个像素上加一(RED ++),直到达到255.

  2. RED达到255后,RED设置为0,GREEN加1(GREEN ++)。

  3. RED通道再次加起来,如步骤1中的255,然后再次执行步骤2。

  4. 如果GREEN为255,则BLUE使用相同的方法表示将一个添加到BLUE,而GREEN和RED再次设置为0。然后再步骤1。

  5. 在第一个像素中的所有通道都是255之后,第二个像素在其RED通道上获得一个通道。然后它应该再次从步骤1开始,直到第二个Pixel在RED上的值为255,什么将RED设置为0并且GREEN在第二个像素上获得一个,依此类推等等....

  6. 对于我糟糕的英语和我有限的Java知识,我很抱歉。

    到目前为止这是我的整个代码(评论中的东西要么在项目中不重要,不准备使用或者我不明白如何使用它xD):

        import javax.swing.JFrame;
    //import javax.swing.JLabel;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    //import java.awt.image.BufferedImage;
    
    public class Quadrat 
    {   
      public static void main (String[] args)
      { int x = 100;
        int y = 0;
        int z = 0;
        int Max = 255;
        int height = 500;
        int width = 500;
    
        if (x < Max){
        x ++;
        } else {
            x = 0;
            y ++;
        }
        if (y > Max){
            y = 0;
            z ++;
            } 
    
        if (z > Max){
            z = 0;
            } 
    
    
        JFrame Bild = new JFrame("Bildergenerator");
        Bild.setSize(width,height);
        Bild.setVisible(true);
    
    
        Color Kartoffel = new Color(x, y, z, 255);
        BufferedImage Test = new BufferedImage(300, 200, 
        BufferedImage.TYPE_INT_ARGB);
        Graphics graphics = Test.getGraphics();
        graphics.setColor(Kartoffel);
        graphics.fillRect(100, 100, 100, 100);
        graphics.dispose();
        Test.setRGB(1, 1, Kartoffel.getRGB());
    
      }
    
    
        /*System.out.println(x);
        System.out.println(y);
        System.out.println(z);*/
        //img.setRGB(x,y,z);
    
    
    
    
    /*    JFrame Test = new JFrame("Jframe1");
          JLabel Label = new JLabel("");
          Test.add(Label);
          Test.setSize(xx,yy);
          Test.setVisible(true);
          Test.setLocation(x/2-(xx/2), y/2-(yy/2));*/
    
    
    
      /* JFrame Hyaeaeae = new JFrame("BurrScurrSWAG");
          Hyaeaeae.setSize(1000,1000);
          Hyaeaeae.setVisible(true);
          Hyaeaeae.getContentPane().setBackground( Color.RED);*/
    
    
    
    
        }
    

    我希望你能以任何方式帮助我,如果是的话,我非常感谢! 感谢您的关注! 祝你今天愉快! c:

1 个答案:

答案 0 :(得分:0)

您需要为此创建计时器,因为您的代码只是在启动后的第一次迭代中更改,之后没有任何更改,因此计时器可确保将增量继续应用于变量

@section scripts {
    <script>
        selectableGrid('@Url.Action("Details", "Lead")/');
    </script>
}