J'ai un programme qui réalise un calcul assez long. A partir du
résultat de ce calcul je veux génerer une image. La conversion calcul
vers image pouvant etre elle aussi assez longue je ne veux pas la mettre
dans la méthode paintComponent() d'un JPanel donc il me faudrait un
composant qui puisse mémoriser une image sur laquelle je puisse
dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à
partir d'un JPanel et d'une BufferedImage par exemple) ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Demaine
"batyann811" a écrit dans le message news: bmloql$iap$
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du résultat de ce calcul je veux génerer une image. La conversion calcul vers image pouvant etre elle aussi assez longue je ne veux pas la mettre dans la méthode paintComponent() d'un JPanel donc il me faudrait un composant qui puisse mémoriser une image sur laquelle je puisse dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à partir d'un JPanel et d'une BufferedImage par exemple) ?
Merci.
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle affichée dans le paintComponent.
"batyann811" <batyann811@wanadoo.fr> a écrit dans le message news:
bmloql$iap$2@news-reader2.wanadoo.fr...
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du
résultat de ce calcul je veux génerer une image. La conversion calcul
vers image pouvant etre elle aussi assez longue je ne veux pas la mettre
dans la méthode paintComponent() d'un JPanel donc il me faudrait un
composant qui puisse mémoriser une image sur laquelle je puisse
dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à
partir d'un JPanel et d'une BufferedImage par exemple) ?
Merci.
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle
affichée dans le paintComponent.
"batyann811" a écrit dans le message news: bmloql$iap$
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du résultat de ce calcul je veux génerer une image. La conversion calcul vers image pouvant etre elle aussi assez longue je ne veux pas la mettre dans la méthode paintComponent() d'un JPanel donc il me faudrait un composant qui puisse mémoriser une image sur laquelle je puisse dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à partir d'un JPanel et d'une BufferedImage par exemple) ?
Merci.
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle affichée dans le paintComponent.
batyann811
Olivier Demaine wrote:
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle affichée dans le paintComponent.
Merci, c'est ce que je viens de faire et ça marche.
Ce que je ne comprends pas c'est que si je fais ça à partir d'un JComponent ça va trés bien et si je le fais à partir d'un JPanel j'ai plein de probleme d'affichage ??? Si quelqu'un pouvait m'expliquer pourquoi... Je vous mets mon code :
public class ImagePanel extends javax.swing.JComponent { // Avec JPanel -> Marche pô !
private BufferedImage image;
public ImagePanel() { }
public ImagePanel(BufferedImage newImage) { setImage(newImage); }
public void setImage(BufferedImage newImage) { image = newImage; }
if(image != null) { int x = getWidth() - image.getWidth(); int y = getHeight() - image.getHeight();
g.drawImage(image, x/2, y/2, this); } }
public Graphics getGraphics() { return image.getGraphics(); } }
Olivier Demaine wrote:
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle
affichée dans le paintComponent.
Merci, c'est ce que je viens de faire et ça marche.
Ce que je ne comprends pas c'est que si je fais ça à partir d'un
JComponent ça va trés bien et si je le fais à partir d'un JPanel j'ai
plein de probleme d'affichage ??? Si quelqu'un pouvait m'expliquer
pourquoi... Je vous mets mon code :
public class ImagePanel extends javax.swing.JComponent {
// Avec JPanel -> Marche pô !
private BufferedImage image;
public ImagePanel() {
}
public ImagePanel(BufferedImage newImage) {
setImage(newImage);
}
public void setImage(BufferedImage newImage) {
image = newImage;
}
A mon avis le mieux est de dessiner dans une BufferedImage qui est elle affichée dans le paintComponent.
Merci, c'est ce que je viens de faire et ça marche.
Ce que je ne comprends pas c'est que si je fais ça à partir d'un JComponent ça va trés bien et si je le fais à partir d'un JPanel j'ai plein de probleme d'affichage ??? Si quelqu'un pouvait m'expliquer pourquoi... Je vous mets mon code :
public class ImagePanel extends javax.swing.JComponent { // Avec JPanel -> Marche pô !
private BufferedImage image;
public ImagePanel() { }
public ImagePanel(BufferedImage newImage) { setImage(newImage); }
public void setImage(BufferedImage newImage) { image = newImage; }
if(image != null) { int x = getWidth() - image.getWidth(); int y = getHeight() - image.getHeight();
g.drawImage(image, x/2, y/2, this); } }
public Graphics getGraphics() { return image.getGraphics(); } }
TestMan
Si le traitement prend bcp de temps, deux solutions, Soit tu veux afficher le resultat au fur et à mesure alors tu devrais regarder aux ImageObserver, c'est exactement leur but, fournir une synchronisation entre la fin du calcul et l'affichage de l'image. Plutôt puissant !
Soit tu veux aficher tout immédiatement alors ton raster appliqué sur un ImageIcon/BufferedImage s'affichera facilement dans un JLabel. Que du bonheur ! Attention toute fois à la mémoire utilise pour de grandes images.
La derniere solution, reste plus classique : tu sauvegarde ton résultat sur disque et tu l'affiche que quand le processus est finit. simple et efficace, et limite la mémoire utilisée en cas de sous-échantillonage de l'affichage par exemple.
@+
TM
batyann811 wrote:
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du résultat de ce calcul je veux génerer une image. La conversion calcul vers image pouvant etre elle aussi assez longue je ne veux pas la mettre dans la méthode paintComponent() d'un JPanel donc il me faudrait un composant qui puisse mémoriser une image sur laquelle je puisse dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à partir d'un JPanel et d'une BufferedImage par exemple) ?
Merci.
Si le traitement prend bcp de temps, deux solutions,
Soit tu veux afficher le resultat au fur et à mesure alors tu devrais
regarder aux ImageObserver, c'est exactement leur but, fournir une
synchronisation entre la fin du calcul et l'affichage de l'image. Plutôt
puissant !
Soit tu veux aficher tout immédiatement alors ton raster appliqué sur
un ImageIcon/BufferedImage s'affichera facilement dans un JLabel. Que
du bonheur ! Attention toute fois à la mémoire utilise pour de grandes
images.
La derniere solution, reste plus classique : tu sauvegarde ton résultat
sur disque et tu l'affiche que quand le processus est finit. simple et
efficace, et limite la mémoire utilisée en cas de sous-échantillonage de
l'affichage par exemple.
@+
TM
batyann811 wrote:
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du
résultat de ce calcul je veux génerer une image. La conversion calcul
vers image pouvant etre elle aussi assez longue je ne veux pas la mettre
dans la méthode paintComponent() d'un JPanel donc il me faudrait un
composant qui puisse mémoriser une image sur laquelle je puisse
dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à
partir d'un JPanel et d'une BufferedImage par exemple) ?
Si le traitement prend bcp de temps, deux solutions, Soit tu veux afficher le resultat au fur et à mesure alors tu devrais regarder aux ImageObserver, c'est exactement leur but, fournir une synchronisation entre la fin du calcul et l'affichage de l'image. Plutôt puissant !
Soit tu veux aficher tout immédiatement alors ton raster appliqué sur un ImageIcon/BufferedImage s'affichera facilement dans un JLabel. Que du bonheur ! Attention toute fois à la mémoire utilise pour de grandes images.
La derniere solution, reste plus classique : tu sauvegarde ton résultat sur disque et tu l'affiche que quand le processus est finit. simple et efficace, et limite la mémoire utilisée en cas de sous-échantillonage de l'affichage par exemple.
@+
TM
batyann811 wrote:
Bonjour à tous,
J'ai un programme qui réalise un calcul assez long. A partir du résultat de ce calcul je veux génerer une image. La conversion calcul vers image pouvant etre elle aussi assez longue je ne veux pas la mettre dans la méthode paintComponent() d'un JPanel donc il me faudrait un composant qui puisse mémoriser une image sur laquelle je puisse dessiner. Est-ce que ça existe ou est que je dois le créer moi même (à partir d'un JPanel et d'une BufferedImage par exemple) ?