Hallo liebe Leute.
Da habe ich mal wieder ein kleines Verständnisproblem.
Ich möchte gern ein BufferedImage manipulieren. Nun habe ich dazu gelesen, dass man das mit hilfe der Bestandteile dieses BufferedImage effektiv lösen kann.
Folgendes verwende Ich (in init()):
In paintComponent rufe ich nun dieses hier auf:
Ich hatte erwartet, dass sobald ich 'pixels' ändere, welches ja quelle für mein 'dataBuffer' ist, sich auch das BufferedImage ändert und dann beim 'drawimage' dieses auch auf den Bildschirm ausgegeben wird. Leider bleibt der bildschirm weiss bzw. grau.
Wenn ich aber alternativ das WritableRaster mittels
ändere, wird diese Änderung dann auch auf dem Bildschirm ausgegeben.
Irgendwie kommt mir das aber doppelgemoppelt vor, da ich gelesen hatte, dass allein eine Änderung in meinem Fall in 'pixels' das BufferedImage updaten soll.
Ist das richtig?
Vielen Dank für eure Hilfe.
EH.
Da habe ich mal wieder ein kleines Verständnisproblem.
Ich möchte gern ein BufferedImage manipulieren. Nun habe ich dazu gelesen, dass man das mit hilfe der Bestandteile dieses BufferedImage effektiv lösen kann.
Folgendes verwende Ich (in init()):
Code:
this.pixels = new int[size];
int [] bandMasks = {0xFF0000, 0xFF00, 0xff, 0xff000000};
dataBuffer = new DataBufferInt (this.pixels, size);
writeRaster = Raster.createPackedRaster(dataBuffer, dim.width, dim.height, dim.width, bandMasks, null);
colorModel = ColorModel.getRGBdefault();
bImg = new BufferedImage(colorModel, writeRaster, false, null);
In paintComponent rufe ich nun dieses hier auf:
Code:
this.pixels = q.createPixels(true);
g2D.drawImage(bImg, null, 0, 0);
Ich hatte erwartet, dass sobald ich 'pixels' ändere, welches ja quelle für mein 'dataBuffer' ist, sich auch das BufferedImage ändert und dann beim 'drawimage' dieses auch auf den Bildschirm ausgegeben wird. Leider bleibt der bildschirm weiss bzw. grau.
Wenn ich aber alternativ das WritableRaster mittels
Code:
writeRaster.setDataElements (0, 0, dim.width, dim.height, q.createPixels(true));
Irgendwie kommt mir das aber doppelgemoppelt vor, da ich gelesen hatte, dass allein eine Änderung in meinem Fall in 'pixels' das BufferedImage updaten soll.
Ist das richtig?
Vielen Dank für eure Hilfe.
EH.