Malerei-Pixel-Bilder in Java
Welche Methode ist die beste Weg, um erstellen Sie ein pixel-Bild mit java.
Sagen, ich will ein pixel-Bild mit den Abmessungen 200 x 200, das sind 40.000 Pixel insgesamt. Wie kann ich ein pixel aus einer zufälligen Farbe und machen es an einer bestimmten position auf einem JFrame.
Ich habe versucht, erstellen Sie eine eigene Komponente, die erzeugt nur pixel, aber es scheint, dass dies nicht sehr performant ist, wenn ich so ein pixel 250.000 mal mit einer for-Schleife und fügen Sie jede Instanz eines JPanels layout.
class Pixel extends JComponent {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(getRandomColor());
g.fillRect(0, 0, 1, 1);
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht, um eine Klasse erstellen, die für dieser. Java hat bereits die hervorragende BufferedImage Klasse, das genau das tut, was Sie brauchen. Hier einige pseudo-code:
ImageIO.read()
es tut. so gibt es etwas falsch mit dem code hier, obwohl ich nicht sicher bin, wasDer Schlüssel ist hier die
Canvas
Klasse. Es ist das standard -Component
ermöglicht, beliebigen draw-Operationen. Um es zu verwenden, müssen Sie eine Unterklasse derCanvas
- Klasse und überschreiben Sie diepaint(Graphics g)
- Methode, dann eine Schleife durch jedes pixel und zeichnen Sie Ihre zufällige Farbe. Der folgende code sollte funktionieren:Generierten Bild sieht wie folgt aus:
Canvas
undJFrame
; auch betrachtennew Color(random.nextInt(), true)
.Frame
stattJFrame
zu vermeiden, seltsame Mischungen.drawLine
klingt wie overkill, wenn Sie bereits wissen, dass Sie brauchen nur einen einzigen pixel.Werden Sie wahrscheinlich wollen, erstellen Sie eine
BufferedImage
von der Größe, die Sie wollen, und verwenden Sieimg.setRGB(x, y, getRandomColor())
erstellen Sie eine Reihe von zufälligen Pixeln an. Dann könnte man rendert das ganze Bild, wo immer Sie es wollen.