tracer un point (un pixel)

Le
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Real Gagnon
Le #19082121
Jean-Marie @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
jmtrg
Le #19085451
On 8 avr, 23:46, Real Gagnon
Jean-Marie @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
Mayeul
Le #19085951
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
jmtrg
Le #19086121
On 9 avr, 15:01, 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 ê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);
}
Mayeul
Le #19086191
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
jlp
Le #19107041
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
Publicité
Poster une réponse
Anonyme