在java中绘制像素

时间:2014-02-03 22:28:04

标签: java pixel bufferedimage

我一次又一次地尝试掌握基本的java编程,但是我写的所有程序的大量错误已经让我失望了。这次我试图通过逐行或循环添加一个像素然后再设置一个像素。

import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Points extends JPanel {
    BufferedImage image = new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB);
    rgb = 0xFF00FF00; // green
    image.setRGB(1, 1, rgb);

  public static void main(String[] args) {
    Points points = new Points();
    JFrame frame = new JFrame("Points");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.add(points);
    frame.setSize(250, 200);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
  }
}

Points.java:7: error: <identifier> expected
    rgb = 0xFF00FF00; // green
       ^
Points.java:8: error: <identifier> expected
    image.setRGB(1, 1, rgb);
                ^
Points.java:8: error: illegal start of type
    image.setRGB(1, 1, rgb);
                 ^
Points.java:8: error: illegal start of type
    image.setRGB(1, 1, rgb);
                    ^
Points.java:8: error: <identifier> expected
    image.setRGB(1, 1, rgb);
                          ^

5个错误

在代码部分是我得到的错误。

2 个答案:

答案 0 :(得分:2)

rgb未定义,因此编译器不知道它应该用它做什么。

您还尝试在执行上下文之外执行一段代码。

public class Points extends JPanel {
    BufferedImage image = new BufferedImage(300, 200, BufferedImage.TYPE_INT_ARGB);
    // Invalid decleration, rgb is undefined
    rgb = 0xFF00FF00; // green
    // execution of code outside of a execution context
    image.setRGB(1, 1, rgb);

声明rgb

int rgb = 0xFF00FF00; // green

image.setRGB(1, 1, rgb);移动到适当的执行上下文,如方法或构造函数......

public Points () {
    image.setRGB(1, 1, rgb);

还要记住,像素数据是0索引的,这意味着第一个像素出现在0x0

答案 1 :(得分:-1)

setRGB方法将第三个参数作为int rgb 假设您想要为像素绿色着色

您必须首先创建Color类型的对象

Color myGreenColor=new Color(255,0,0);

然后您可以将其设置为像

一样的图像
image.setRGB(i,j,myGreenColor.getRGB());