Dessiner dans un Picturebox, Performances

Tralen Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013 - Modifié par Tralen le 29/10/2013 à 14:49
Tralen Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013 - 30 oct. 2013 à 11:14
Bonjour,
Je voudrai faire un programme qui met a jour les couleurs d'un picturebox en fonction du temps. (Pour montrer une évolution de la température)
Pour cela je modifie un image que je charge grâce à la méthode loadPictures.

Je sais qu'il existe des méthodes tels que PSet, point etc qui permettent de colorer ou de récupérer la couleurs d'un pixel de l'image.
Cependant au vu du nombre de pixel à traiter entre chaque rafraîchissement je voudrais savoir s'il existe d'autre méthodes permettant de faire à peu près la même chose.

Je précise que je code sur VB5 et que je n'ai pas la possibilité d'utiliser des logiciels plus récent.

Merci de votre aide
Tralen

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
29 oct. 2013 à 16:16
Bonjour,
Si tu développes sous VB5, tu ne développes pas sous VB.Net (la présente section du forum) !!
Je commence donc par déplacer ta discussion vers la section appropriée.
Prends-en bonne note pour tes prochaines discussions. C'est IMPORTANT (codes totalement différents).
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 29/10/2013 à 16:26
Bon...
Parle-nous un peu de cette image "de base". Comment est-elle composée ? de "zones" délimitées (surfaces) ou de points de toutes couleurs et mélangés ?
Le mieux serait sans doute que tu nous la montres (en la déposant sur un site de dépôts)
Et précise-nous également sa taille en pixels
Il est également TRES IMPORTANT que tu nous précises si tes modifications de pixels concernent ou non à la fois tous les pixels de l'image et avec la même évolution de couleur.
0
Tralen Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013
29 oct. 2013 à 20:46
Désolé pour avoir mal placé le sujet je n'ai pas fait assez attention.
On ne m'y reprendra plus !

L'image est composée de zone délimité de couleurs unies (une tache de couleur avec un contour noir sur fond blanc)
Le contour de l'image est délimité par un cadre gris


Sa taille est 640*480 pixels

Les modifications de couleurs doivent avoir lieu sur toute l'image excepté le contour de l'image et le contour de la tache colorée.
L'évolution de couleur n'est pas homogène

Pour illustrer le concept tu pourrai prendre deux liquide de deux couleurs differentes (un jaune et un bleu) que tu mets en contact.
A la frontière entre les deux liquide tu aura un dégradé du jaune au bleu en passant par le vert.
C'est ce que j'essai de rendre.

C'est dans le cadre d'un devoir que je dois faire ca aussi s'il est possible dans vos réponse de mettre le moins de code possible (j'aimerai trouver par moi même)
Le prof nous a parler de méthodes plus performantes que pset sans nous donner plus d'info.
Pour cette raison aussi je ne peux pas vous montrer l'image (elle n'est pas à moi)


Merci de votre aide.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 29/10/2013 à 21:02
Ouais ..
Alors là (avec ces explications) : tu ne peux que "travailler" chaque pixel !
Pset n'est en effet pas vraiment performant. la fonction SetPixel de la librairie gdi32 de l'Api de Windows est moins lente, mais pas vraiment meilleure ...
Tu dis vouloir n'être qu'orienté et je vais respecter, s'agissant d'un devoir sur lequel TU seras noté. ==>> si tu veux que les choses soient plus rapides, il va te falloir t'orienter vers l'utilisation d'un tableau de bits (dibits).
Intéresse-toi alors aux fonctions GetDIBits et SetDIBitsToDevice de la librairie Gdi32 de l'Api de Windows.
En te faisant observer que cette utilisation fait appel principalement à d'autres connaissances que celles de VB (5 ou 6), qui ne sera là que pour déclarer et utiliser les valeurs passées à ces fonctions.
Bon travail.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tralen Messages postés 3 Date d'inscription mardi 29 octobre 2013 Statut Membre Dernière intervention 30 octobre 2013
30 oct. 2013 à 11:14
Merci
Je vais creuser dans ce sens.
0
Rejoignez-nous