title image


Smiley Re: einen einzelnen Pixel setzen
Hi!

Die Methode von bauerr funktioniert zwar, ist aber sehr langsam wenn du viele pixel setzen willst. Besser wäre hier ein MemoryImageSource. Da kannst du die Pixel setzen, indem du einfach die Farbwerte in ein Array schreibst.

Beispiel für ein 300*200 großes Image:



MemoryImageSource TargetMIS;

Image TargetImage;

ColorModel TargetCM = new DirectColorModel (32,0x00FF0000,0x000FF00,0x000000FF,0xFF000000);

int[] imageArray = new int[300*200];

...

//im Konstruktor

TargetMIS = new MemoryImageSource(300,200,TargetCM,imageArray,0,300);

TargetMIS.setAnimated(true);

TargetMIS.setFullBufferUpdates(true);

TargetImage = createImage(TargetMIS);



//in der paint() Methode

g.drawImage(TargetImage,0,0,this);



//pixelwerte setzen

//x und y Koordinate übergeben

// ALPHA / ROT / GRUEN / BLAU

//Hier wäre das pixel rot

imageArray[x+y*200] = 255 << 24 | 255 << 16 | 0 << 8 | 0;



hoffe das hilft dir erstmal weiter.



mfg,




geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: