Dessiner dans un Picturebox, Performances

Signaler
Messages postés
3
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
30 octobre 2013
-
Messages postés
3
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
30 octobre 2013
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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).
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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.
Messages postés
3
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
30 octobre 2013

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
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
Messages postés
3
Date d'inscription
mardi 29 octobre 2013
Statut
Membre
Dernière intervention
30 octobre 2013

Merci
Je vais creuser dans ce sens.