Je cherche à afficher des images. Le problème n'est pas d'afficher une seule
image, mais d'en afficher plein : ça clignotte. Je voudrais bien faire du
doublebuffering, mais je ne vois pas trop comment faire.
Donc, que faire ?
Autre question, je devrais afficher des traits (des droites, comme sous
paint), mais je ne sais pas du tout comment faire. Une idée ?
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
Mitsuru FURUTA [Ms]
Bonjour,
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer. Du coup c'est cet objet que tu utilises pour faire des affichages dans ta boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable objet graphique.
Pour tracer des lignes ? DrawLine() ?
Bonne continuation,
Mitsuru FURUTA [Microsoft FRANCE]
"Mathieu Chavoutier" wrote in message news:
Bonjour.
Je cherche à afficher des images. Le problème n'est pas d'afficher une
seule
image, mais d'en afficher plein : ça clignotte. Je voudrais bien faire du doublebuffering, mais je ne vois pas trop comment faire.
Donc, que faire ?
Autre question, je devrais afficher des traits (des droites, comme sous paint), mais je ne sais pas du tout comment faire. Une idée ?
if ((myElementInformation > ((Graphic.ElementPart)drawPanel.Tag).getCurrentElementInformation()) ! > null)
e.Graphics.DrawImage(newImage, new Rectangle(x, y, (int)(size * scale), (int)(size * scale)), 0, 0, size, size, GraphicsUnit.Pixel, imageAttr);
}
Bonjour,
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer.
Du coup c'est cet objet que tu utilises pour faire des affichages dans ta
boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable
objet graphique.
Pour tracer des lignes ? DrawLine() ?
Bonne continuation,
Mitsuru FURUTA
[Microsoft FRANCE]
"Mathieu Chavoutier" <nospam@no.spam> wrote in message
news:u1jXyPPXEHA.3676@TK2MSFTNGP09.phx.gbl...
Bonjour.
Je cherche à afficher des images. Le problème n'est pas d'afficher une
seule
image, mais d'en afficher plein : ça clignotte. Je voudrais bien faire du
doublebuffering, mais je ne vois pas trop comment faire.
Donc, que faire ?
Autre question, je devrais afficher des traits (des droites, comme sous
paint), mais je ne sais pas du tout comment faire. Une idée ?
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer. Du coup c'est cet objet que tu utilises pour faire des affichages dans ta boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable objet graphique.
Pour tracer des lignes ? DrawLine() ?
Bonne continuation,
Mitsuru FURUTA [Microsoft FRANCE]
"Mathieu Chavoutier" wrote in message news:
Bonjour.
Je cherche à afficher des images. Le problème n'est pas d'afficher une
seule
image, mais d'en afficher plein : ça clignotte. Je voudrais bien faire du doublebuffering, mais je ne vois pas trop comment faire.
Donc, que faire ?
Autre question, je devrais afficher des traits (des droites, comme sous paint), mais je ne sais pas du tout comment faire. Une idée ?
if ((myElementInformation > ((Graphic.ElementPart)drawPanel.Tag).getCurrentElementInformation()) ! > null)
e.Graphics.DrawImage(newImage, new Rectangle(x, y, (int)(size * scale), (int)(size * scale)), 0, 0, size, size, GraphicsUnit.Pixel, imageAttr);
}
Mathieu Chavoutier
"Mitsuru FURUTA [Ms]" a écrit dans le message de news:%2314g$
Bonjour,
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer. Du coup c'est cet objet que tu utilises pour faire des affichages dans ta boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable objet graphique.
Je viens de comprendre comment ça marchait (grâce à tes explications), merci.
Pour tracer des lignes ? DrawLine() ?
Merci :o)
"Mitsuru FURUTA [Ms]" <mitsufu@microsoft.com> a écrit dans le message de
news:%2314g$cWXEHA.3016@tk2msftngp13.phx.gbl...
Bonjour,
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer.
Du coup c'est cet objet que tu utilises pour faire des affichages dans ta
boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable
objet graphique.
Je viens de comprendre comment ça marchait (grâce à tes explications),
merci.
"Mitsuru FURUTA [Ms]" a écrit dans le message de news:%2314g$
Bonjour,
Il faut d'abord créer un buffer aux dimensions de ton affichage:
Bitmap buffer = new Bitmap(width, height);
Ensuite il faut utiliser la méthode static Graphics.FromImage(bitmap);
Qui renvoit un objet graphique qui a comme contexte le buffer. Du coup c'est cet objet que tu utilises pour faire des affichages dans ta boucle et rien ne s'affiche car tout est dans le buffer.
Ensuite, tu affiches une unique fois le buffer avec le Draw du véritable objet graphique.
Je viens de comprendre comment ça marchait (grâce à tes explications), merci.