Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tracer un point (un pixel)

6 réponses
Avatar
Jean-Marie
Bonjour

y-a-t'il un moyen plus "rapide" pour tracer un point que la méthode
dst.drawLine(x,y,x,y);
ou dst est du type Graphics

remarque : je ne peux pas utiliser la méthode dst.create(x, y, 1, 1);
et je suis dans une configuration où la quantité d'objets peut être
énorme (500000, 1M)

merci d'avance

jean-marie

6 réponses

Avatar
Real Gagnon
Jean-Marie wrote in news:gria13$9kn$1
@victor.teaser.fr:

y-a-t'il un moyen plus "rapide" pour tracer un point que la m‚thode
dst.drawLine(x,y,x,y);
ou dst est du type Graphics



Peut-etre ceci :

public void setPixel
(Image image, int x, int y, Color color ) {
Graphics g = image.getGraphics( );
g.setColor( color );
g.fillRect( x, y, 1, 1 );
g.dispose( );
}

--
Real Gagnon from Quebec, Canada
* Java, Javascript, VBScript and PowerBuilder code snippets
* http://www.rgagnon.com/howto.html
* http://www.rgagnon.com/bigindex.html
Avatar
jmtrg
On 8 avr, 23:46, Real Gagnon <realgag+ wrote:
Jean-Marie wrote in news:gria13$9kn$1
@victor.teaser.fr:

> y-a-t'il un moyen plus "rapide" pour tracer un point que la m‚thode
> dst.drawLine(x,y,x,y);
> ou dst est du type Graphics

Peut-etre ceci :

public void setPixel
      (Image image, int x, int y, Color color ) {
    Graphics g = image.getGraphics( );
    g.setColor( color );
    g.fillRect( x, y, 1, 1 );
    g.dispose( );
    }

--
Real Gagnon  from  Quebec, Canada
* Java, Javascript, VBScript and PowerBuilder code snippets
*http://www.rgagnon.com/howto.html
*http://www.rgagnon.com/bigindex.html



apparemment je ne constate pas d'émalioration
mais perci qd mm
Avatar
Mayeul
Jean-Marie wrote:
y-a-t'il un moyen plus "rapide" pour tracer un point que la méthode
dst.drawLine(x,y,x,y);
ou dst est du type Graphics

remarque : je ne peux pas utiliser la méthode dst.create(x, y, 1, 1);
et je suis dans une configuration où la quantité d'objets peut être
énorme (500000, 1M)



Si vous êtes en train de dessiner dans une BufferedImage, vous pouvez
utiliser BufferedImage.setRGB()

On indique les coordinées du pixel, et sa couleur en format ARGB
classique. Si l'image a un autre format de couleur, la fonction s'occupe
de convertir.

Encore plus direct, si vous manipulez une BufferedImage dont vous
connaissez complètement la construction, vous pouvez modifier
directement ses données de pixel :

Obtenir le Raster de l'image avec BufferedImage.getRaster(), puis
appeler WritableRaster.setPixel(), en indiquant précisément les samples
du pixel.

--
Mayeul
Avatar
jmtrg
On 9 avr, 15:01, Mayeul wrote:
Jean-Marie wrote:
> y-a-t'il un moyen plus "rapide" pour tracer un point que la méthode
> dst.drawLine(x,y,x,y);
> ou dst est du type Graphics

> remarque : je ne peux pas utiliser la méthode dst.create(x, y, 1, 1);
> et je suis dans une configuration où la quantité d'objets peut êt re
> énorme (500000, 1M)

Si vous êtes en train de dessiner dans une BufferedImage, vous pouvez
utiliser BufferedImage.setRGB()

On indique les coordinées du pixel, et sa couleur en format ARGB
classique. Si l'image a un autre format de couleur, la fonction s'occupe
de convertir.

Encore plus direct, si vous manipulez une BufferedImage dont vous
connaissez complètement la construction, vous pouvez modifier
directement ses données de pixel :

Obtenir le Raster de l'image avec BufferedImage.getRaster(), puis
appeler WritableRaster.setPixel(), en indiquant précisément les sampl es
du pixel.

--
Mayeul



en fait je suis dans une méthode particulière que je ne peux éviter
car elle fait partie d'une librairie graphique sur laquelle nous nous
appuyons
pour afficher de la cartographie ; la méthode de cette classe est

public void draw(Graphics dst,IlvTransformer t) {
....
....
}

à l'intérieur je configure l'objet

par exemple

public void draw(Graphics dst,IlvTransformer t) {
dst.setColor(Color.white);
dst.drawLine(x,y,x,y);
}
Avatar
Mayeul
wrote:
en fait je suis dans une méthode particulière que je ne peux éviter
car elle fait partie d'une librairie graphique sur laquelle nous nous
appuyons
pour afficher de la cartographie ; la méthode de cette classe est

public void draw(Graphics dst,IlvTransformer t) {
....
....
}

à l'intérieur je configure l'objet

par exemple

public void draw(Graphics dst,IlvTransformer t) {
dst.setColor(Color.white);
dst.drawLine(x,y,x,y);
}



Si ces contraintes doivent être maintenues, ou sont inévitables, alors
je ne pense pas qu'il y ait plus rapide. Après tout il n'y a aucune
marge de manœuvre.

--
Mayeul
Avatar
jlp
Mayeul a écrit :
wrote:

en fait je suis dans une méthode particulière que je ne peux éviter
car elle fait partie d'une librairie graphique sur laquelle nous nous
appuyons
pour afficher de la cartographie ; la méthode de cette classe est

public void draw(Graphics dst,IlvTransformer t) {
....
....
}

à l'intérieur je configure l'objet

par exemple

public void draw(Graphics dst,IlvTransformer t) {
dst.setColor(Color.white);
dst.drawLine(x,y,x,y);
}




Si ces contraintes doivent être maintenues, ou sont inévitables, alors
je ne pense pas qu'il y ait plus rapide. Après tout il n'y a aucune
marge de manœuvre.

--
Mayeul


tisser un aspect ? => voir AspectJ sur site Eclipse