2 dim. Pixel Array in AWT?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
folgendes problem:

ich will in awt grafiken zeichnen und diese animieren.
am besten wäre es wenn ich jedes einzelne Pixel ansprechen und in farbe und pos. verändern könnte

gibt es irgendeine möglichkeit ein "Pixel"array zu bekommen?
 
Hi!

Das geht mit der Klasse PixelGrabber. Ich habe das auch schon mal gebraucht hier ein bsp. code:

Code:
    private int[][] getArray(Image img, int width,int height) {
        
        int []array=new int[littleImage.getIconWidth()*littleImage.getIconHeight()]; // littleImage ist ein ImageIcon
        PixelGrabber grab = new PixelGrabber(img,0,0,width,height,array,0,width); // img ist das Image von littleImage - mittels littleImage.getImage()
        try {
            grab.grabPixels();        // Pixel in variable array schreiben
        }
        catch(InterruptedException e) {}
        int[][] a=new int[width][height]; 
        for(int y=0;y<height;y++)                 // in zweidimensionales array umwandeln
            for(int x=0;x<width;x++) 
                a[x][y]=array[y*width+x];
        return a;
    }


Ich hoffe ich konnte dir helfen.

mfg,
Christian.
 

DarKestSun

Mitglied
kann ich den pixel grabber auch benutzen wenn ich mit threads arbeite?
also performance mäßig gesehen
ich arbeite an nem jump n run spiel, da sollte der nich zu viel resourcen verbrauchen...
 

Hansdampf

Bekanntes Mitglied
Am besten doppelt implementieren: PixelGrabber/ImageSource für Rechner mit Java <1.2, bei >1.2 komplett auf BufferedImage setzten.
Wenn man sowas nicht inner Schleife verwendet, genügt auch nur Pixelgrabber.
Schreib dir mal ein kurzes Testprogramm, es gibt garstige Geschwindigkeitsunterschiede.
Lass das mit den Threads, es geht besser ohne.
 
Also das mit dem BufferedImage hab ich nicht gewusst, dass man damit auch Pixel verändern kann. Kennst du ein gutes Tutorial, wo die Klasse BufferedImage beschrieben ist? Das würde mich doch sehr interessieren!

Danke!

mfg,
Christian.
 

Hansdampf

Bekanntes Mitglied
das hab ich dir schon mal geschrieben:

das int[] bekommst du mit
DataBuffer db=((BufferedImage)image).getRaster().getDataBuffer();
DataBufferInt dbi=(DataBufferInt)db;
int[] b=dbi.getData();

(vielleicht sind Syntaxfehler drin)
das Image kannst du dann sofort setzen. Sobald du einen Pixel im int[] veränderst wird glaub ein flag gesetzt, dass das Image beim nächsten "Painten" updated. Damit zerstört man zwar die hardwareseitige Beschleunigung (die BufferedImages nunmal haben), reicht aber aus. Bei meim Spiel bekomme ich über 50fps bei 800*600 und bin glücklich.
Kopieren kannst du int[]s auch prima mit System.arraycopy.
Tutorial kenn ich nicht, aber Google hats.
 
G

Guest

Gast
thx!!! :applaus:

genau nach so was hab ich ausschau gehalten

wenn ich das jetz öfters benutze, is das performance mäßig (auch was den RAM betrifft!!) ertragbar?

ich machen ein jump n run spiel, wenn eine kugel (z.b. ein abgefeuerter feuerball von mir aus) eine wand trifft, dann soll sie explodieren, dann würde ich die pixel im array verändern, damit ich nich hunderte images laden muss.

da das ganze netzwerk-basierend is und man schon ca. 6-20 (so viel eben geht) spieler haben sollte, frag ich mich ob das möglich is, weil ja viele arrays viel speicher verschwenden, und wenn die methode nich so gut is...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
BraunBerry Java Game Pixel "einfärben" Spiele- und Multimedia-Programmierung 6
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
Q Mehr objekte darstellen als Pixel vorhanden Spiele- und Multimedia-Programmierung 6
Androbin Pixel-genaue Kollisionserkennung Spiele- und Multimedia-Programmierung 5
J Bestimmte Pixel transparent erscheinen lassen Spiele- und Multimedia-Programmierung 5
M pixel auslesen in JOGLE Spiele- und Multimedia-Programmierung 3
B Java Pixel Malen Spiele- und Multimedia-Programmierung 3
M Pixel eines BufferedImage bearbeiten (Performance) Spiele- und Multimedia-Programmierung 23
Kr0e OpenGL .. Pixel Buffer Objekt oder Frame Buffer Object? Spiele- und Multimedia-Programmierung 2
Steev LWJGL: org.lwjgl.LWJGLException: Pixel format not accelerated Spiele- und Multimedia-Programmierung 9
M pixel perfect collision detection bei rotierenden Bildern Spiele- und Multimedia-Programmierung 13
G Pixel setzen mit TYPE_INT_ARGB Spiele- und Multimedia-Programmierung 10
D cm in pixel Spiele- und Multimedia-Programmierung 37
R int[] der Pixel aus PNG oder JPG ? Spiele- und Multimedia-Programmierung 2
P Bild, Pixel- / Bereichsfarbe auslesen Spiele- und Multimedia-Programmierung 12
G Pixel Häufigkeiten entsprechent einfärben Spiele- und Multimedia-Programmierung 6
K Einzelne Pixel in einem Bild lesen Spiele- und Multimedia-Programmierung 5
S BMP-Bild Pixel für Pixel bearbeiten Spiele- und Multimedia-Programmierung 1
V Tranzparente Pixel Spiele- und Multimedia-Programmierung 5
S Pixel zeichnen Spiele- und Multimedia-Programmierung 3
A Spielfelder erstellen mit Jogl Java durch ein Koordinaten Array Spiele- und Multimedia-Programmierung 1
A Multidimensionler Array - Elemente vergleichen (TicTacToe) Spiele- und Multimedia-Programmierung 4
T LWJGL: Terrain-Texturen / 2D-Array in Shader? Spiele- und Multimedia-Programmierung 2
J Frage zum Einlesen einer .wav in ein byte Array Spiele- und Multimedia-Programmierung 3
B klassenobjekte als Array Spiele- und Multimedia-Programmierung 3
Seikuassi gluLookAt mit glMultMatrix und Array Spiele- und Multimedia-Programmierung 3
Androbin mehr-dimensionale(n) Array(s) "drehen" Spiele- und Multimedia-Programmierung 8
N [SLICK] Rectangle in Array Speichern Spiele- und Multimedia-Programmierung 3
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
A Patter Array Eintrag vergleichen geht nicht!!! Spiele- und Multimedia-Programmierung 3
J A*, Array und KI Spiele- und Multimedia-Programmierung 5
L Tile Map als Array? Spiele- und Multimedia-Programmierung 23
O In Array Pulk von gleichen Zahlen finden. Spiele- und Multimedia-Programmierung 4
K Schiebepuzzle Array Zufallszahlen Problem Spiele- und Multimedia-Programmierung 8
R Schach, Array und GUI Verknüpfung, enum Spiele- und Multimedia-Programmierung 16
B Array und Parameter Spiele- und Multimedia-Programmierung 38
S Methode verändert mein Eingabe Array oO Spiele- und Multimedia-Programmierung 6
Z Kugeln aufgrund von Daten aus einem Array verschieben Spiele- und Multimedia-Programmierung 2
P int-Array zu BufferedImage (performance?) Spiele- und Multimedia-Programmierung 14
D Array aus Objekten Spiele- und Multimedia-Programmierung 2
T Bild als mehrdimesionaler Array Spiele- und Multimedia-Programmierung 4
H Jpeg Bildinformation in ein Char Array speichern? Spiele- und Multimedia-Programmierung 4
J Array/Matrix auswerten. Spiele- und Multimedia-Programmierung 6
C Array 'Wiederbenuezten' - Map Spiele- und Multimedia-Programmierung 4
B Ein Array für Buttons Spiele- und Multimedia-Programmierung 8
T 2 Dimensionales Array herausschreiben Spiele- und Multimedia-Programmierung 4
N Array mit verschiedenen Klassen Spiele- und Multimedia-Programmierung 15

Ähnliche Java Themen

Neue Themen


Oben