Графический класс на Java - PullRequest
1 голос
/ 15 января 2012

Я пытаюсь построить график функции в Java. Я знаю, что для этого есть множество библиотек, но я хочу научиться делать графику Java. Я пытаюсь создать изображение с буферизацией и назначить его метке. Прямо сейчас я просто хочу сделать каждый второй пиксель черным, чтобы видеть, что он работает. Я буду периодически переназначать значения в буфер изображения. Тем не менее, мне нужен графический класс, который является абстрактным. Нужно ли мне реализовывать собственное расширение графического класса? Есть ли лучший или предпочтительный способ сделать это? Это, вероятно, пойдет и для наблюдателя изображения.

Вот мой код:

static BufferedImage I = new BufferedImage(X, Y, BufferedImage.TYPE_INT_RGB);
public static void main(String args[]){
        JLabel label = new JLabel(new ImageIcon(I));
        panel.add(label);
painter(I);
//edited to remove various declarations
}
public static void painter(BufferedImage b){
        for(int x = 0; x<b.getWidth(); x+=2){
            for(int y = 0; y<b.getHeight(); y+=2){
                b.setRGB(x,y, 000000);


            }
            paint(g, iobs);
        }

public void paint(Graphics g, ImageObserver iobs)
    {
        //ImageObserver iobs 
        g.drawImage(I, 0, 0, iobs);// iobs);    
    }

Ответы [ 2 ]

3 голосов
/ 15 января 2012
BufferedImage a = ...;
// In fact, this is a Graphics2D but it's safe to use it
// as a Graphics since that's the super class
Graphics g = a.createGraphics();

// now you can draw into the buffered image - here's a rect in upper left corner.
g.drawRect(0, 0, a.getWidth() / 2, a.getHeight() / 2);
1 голос
/ 15 января 2012

Вы также можете изучить эти примеры, использующие setRGB(). Первый пример показывает несколько видов в кадре, а второй пример дает некоторое представление о том, как BufferedImage 'ColorModel выбирает цвета.

...