yassine_bourimech
Messages postés1Date d'inscriptionjeudi 15 mars 2007StatutMembreDernière intervention 2 décembre 2010 2 déc. 2010 à 12:28
bonjour
merci bien pour ta source est très interressante
Je veut savoir comment ta crier les fichier.DAT
djipai
Messages postés20Date d'inscriptionlundi 22 juin 2009StatutMembreDernière intervention16 août 2010 4 août 2010 à 10:11
Code très bien commenté et très riche.
Merci beaucoup à son auteur.
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 1 novembre 20107 28 août 2007 à 07:05
Bonsoir,
1) Pour le pictureBox colorié en noir, as tu chargé une image noire ou as-tu défini le background du picturebox en noir car il faut pour cette application, charger une image.
Son code analyse une image :
2) Pour le code de la couleur, j'utilise beaucoup Firefox avec une de ses extensions : ColorZilla.
Je choisis une image quelconque, clic droit dessus, « ouvrir avec », je choisis Firefox et avec cette extension, on peut connaître le code de toutes les couleurs de l'image.
La fonction GetPixel ci-dessus donne les mêmes informations sur la couleur sous le curseur.
3) Pour peindre, il faut définir une région, sans quoi, le picturebox ou plus généralement le contrôle sera peint en entier.
4) Ce code a été fait avec VB.net 2003, suite à ton message je l'ai testé sous vb.net 2005, c'est nul.
La fonction SetPixel qui recherche chaque pixel de la région ou la zone à repeindre est beaucoup plus (trop) lente.
J'ai repris cette source avec une autre méthode que je posterai en mise à jour.
5) Pour info, j'ai dessiné, sur la base d'une carte d'écolier, les contours de la carte avec un logiciel de dessin 2D et fais les retouches et la couleur avec photoshop.
Bien cordialement.
podan
Messages postés12Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention14 novembre 2009 11 août 2007 à 18:53
bonjour
ta source est très interressante mais difficile pour un débutant. j'ai essayé de m'en servir dans un petit exemple simple, un simple picturebox colorié en noir mais ça ne marche pas:
comment sais tu le code hexadécimal (je pense) de la couleur ?
faut-il absolument donner une zone
est- ce 1 code en vb.net ou vb6
comment et avec quoi sont créées la carte et les région
bravo encore et merci
a++
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 2 nov. 2004 à 23:26
merci bien pour le AndAlso et le OrElse ... çà va être bien pratique çà !
cs_christoni
Messages postés140Date d'inscriptionmardi 25 novembre 2003StatutMembreDernière intervention 1 novembre 20107 1 nov. 2004 à 10:14
Bonjour.
« And » et « AndAlso » :
Avec « And » VB examine toutes les expressions ou conditions.
Avec « AndAlso » Dès qu’une condition ne correspond pas, VB court-circuite
Les autres, puisqu’elles ne sont plus déterminantes pour le résultat final.
Il paraît que ça améliore les performances.
Dans le cas présent, ce n’est peut-être pas utile.
« Une opération logique effectue un court-circuit si le code compilé peut ignorer l'évaluation d'une expression en fonction du résultat d'une autre expression. Si le résultat de la première expression évaluée détermine le résultat final de l'opération, il n'y a pas besoin d'évaluer l'autre expression, car elle ne peut pas changer le résultat final. Un court-circuit peut améliorer les performances si l'expression ignorée est complexe, ou si elle implique des appels de procédure. »
Pour « Or », on a aussi « OrElse ».
Pour colorier une zone :
Dans ce cas si la souris passe sur une zone bleue-ciel ou sur le texte en
Bleu plus foncé, alors la zone passe en rouge et le texte en blanc.
Tout d’abord j’ai déclaré la couleur qui se trouve sous le pointeur de la
Souris :
Nom de la couleur
Dim pixelColor As Color
Obtient la couleur du pixel spécifié dans l’image.
pixelColor = monImage.GetPixel(aBs, oRd)
Ensuite j’ai défini les coordonnées de mes différentes zones bleues :
Si la couleur sous ma souris est bleue clair (ffc6dee5) ou
Bleu foncé (ff4091a9) et si je suis bien dans le rectangle
correspondant aux coordonnées indiquées alors l’opération va fonctionner.
If pixelColor.Name "ffc6dee5" Or pixelColor.Name "ff4091a9" Then
If (aBs > 267 AndAlso aBs < 366) AndAlso (oRd > 10 AndAlso oRd < 79) Then
txtRegion.Text = " NORD-PAS-DE-CALAIS "
Pour chaque pixel de la région définie ci-dessous,
VB renvoie à « RegionBleue »
For aBs = 267 To 366
For oRd = 10 To 79
RegionBleue()
Next oRd
Next aBs
Exit Sub
End If
Ainsi chaque pixel lu bleu clair et redéfini en rouge et le texte
en blanc :
Sub RegionBleue()
' "get" : lire et retenir (obtenir)
' "set" : définir et appliquer
txtRegion.Width = txtRegion.TextLength * 8
If monImage.GetPixel(aBs, oRd).Name = "ffc6dee5" Then
monImage.SetPixel(aBs, oRd, Color.Red)
End If
If monImage.GetPixel(aBs, oRd).Name = "ff4091a9" Then
monImage.SetPixel(aBs, oRd, Color.WhiteSmoke)
End If
End Sub
Il faut définir de petites zones car ça « rame » vite.
Bonne journée.
dionysos6868
Messages postés310Date d'inscriptionjeudi 4 septembre 2003StatutMembreDernière intervention 9 juin 20051 31 oct. 2004 à 13:35
Alors chapeau je connaissais pas du tout mais je ne comprend pas tellement comment tu fait pour colorier une zone.
Merci beaucoup pour ta source que je vais exploiter pour comprendre 10/10 car tres bien commentée.
spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006 31 oct. 2004 à 01:55
Tien je viens de télécharger ta source et là je découvre un nouveau truc (enfin pour moi c'est nouveau) : "AndAlso"
C'est quoi la différence avec le "And" classique ?
2 déc. 2010 à 12:28
merci bien pour ta source est très interressante
Je veut savoir comment ta crier les fichier.DAT
4 août 2010 à 10:11
Merci beaucoup à son auteur.
28 août 2007 à 07:05
1) Pour le pictureBox colorié en noir, as tu chargé une image noire ou as-tu défini le background du picturebox en noir car il faut pour cette application, charger une image.
Son code analyse une image :
monImage = New Bitmap(dessinFile & "CarteRegions.png")
PictureBox1.Image = CType(monImage, Bitmap)
pixelColor = monImage.GetPixel(aBs, oRd)
2) Pour le code de la couleur, j'utilise beaucoup Firefox avec une de ses extensions : ColorZilla.
Je choisis une image quelconque, clic droit dessus, « ouvrir avec », je choisis Firefox et avec cette extension, on peut connaître le code de toutes les couleurs de l'image.
La fonction GetPixel ci-dessus donne les mêmes informations sur la couleur sous le curseur.
3) Pour peindre, il faut définir une région, sans quoi, le picturebox ou plus généralement le contrôle sera peint en entier.
4) Ce code a été fait avec VB.net 2003, suite à ton message je l'ai testé sous vb.net 2005, c'est nul.
La fonction SetPixel qui recherche chaque pixel de la région ou la zone à repeindre est beaucoup plus (trop) lente.
J'ai repris cette source avec une autre méthode que je posterai en mise à jour.
5) Pour info, j'ai dessiné, sur la base d'une carte d'écolier, les contours de la carte avec un logiciel de dessin 2D et fais les retouches et la couleur avec photoshop.
Bien cordialement.
11 août 2007 à 18:53
ta source est très interressante mais difficile pour un débutant. j'ai essayé de m'en servir dans un petit exemple simple, un simple picturebox colorié en noir mais ça ne marche pas:
comment sais tu le code hexadécimal (je pense) de la couleur ?
faut-il absolument donner une zone
est- ce 1 code en vb.net ou vb6
comment et avec quoi sont créées la carte et les région
bravo encore et merci
a++
2 nov. 2004 à 23:26
1 nov. 2004 à 10:14
« And » et « AndAlso » :
Avec « And » VB examine toutes les expressions ou conditions.
Avec « AndAlso » Dès qu’une condition ne correspond pas, VB court-circuite
Les autres, puisqu’elles ne sont plus déterminantes pour le résultat final.
Il paraît que ça améliore les performances.
Dans le cas présent, ce n’est peut-être pas utile.
« Une opération logique effectue un court-circuit si le code compilé peut ignorer l'évaluation d'une expression en fonction du résultat d'une autre expression. Si le résultat de la première expression évaluée détermine le résultat final de l'opération, il n'y a pas besoin d'évaluer l'autre expression, car elle ne peut pas changer le résultat final. Un court-circuit peut améliorer les performances si l'expression ignorée est complexe, ou si elle implique des appels de procédure. »
Pour « Or », on a aussi « OrElse ».
Pour colorier une zone :
Dans ce cas si la souris passe sur une zone bleue-ciel ou sur le texte en
Bleu plus foncé, alors la zone passe en rouge et le texte en blanc.
Tout d’abord j’ai déclaré la couleur qui se trouve sous le pointeur de la
Souris :
Nom de la couleur
Dim pixelColor As Color
Obtient la couleur du pixel spécifié dans l’image.
pixelColor = monImage.GetPixel(aBs, oRd)
Ensuite j’ai défini les coordonnées de mes différentes zones bleues :
Si la couleur sous ma souris est bleue clair (ffc6dee5) ou
Bleu foncé (ff4091a9) et si je suis bien dans le rectangle
correspondant aux coordonnées indiquées alors l’opération va fonctionner.
If pixelColor.Name "ffc6dee5" Or pixelColor.Name "ff4091a9" Then
If (aBs > 267 AndAlso aBs < 366) AndAlso (oRd > 10 AndAlso oRd < 79) Then
txtRegion.Text = " NORD-PAS-DE-CALAIS "
Pour chaque pixel de la région définie ci-dessous,
VB renvoie à « RegionBleue »
For aBs = 267 To 366
For oRd = 10 To 79
RegionBleue()
Next oRd
Next aBs
Exit Sub
End If
Ainsi chaque pixel lu bleu clair et redéfini en rouge et le texte
en blanc :
Sub RegionBleue()
' "get" : lire et retenir (obtenir)
' "set" : définir et appliquer
txtRegion.Width = txtRegion.TextLength * 8
If monImage.GetPixel(aBs, oRd).Name = "ffc6dee5" Then
monImage.SetPixel(aBs, oRd, Color.Red)
End If
If monImage.GetPixel(aBs, oRd).Name = "ff4091a9" Then
monImage.SetPixel(aBs, oRd, Color.WhiteSmoke)
End If
End Sub
Il faut définir de petites zones car ça « rame » vite.
Bonne journée.
31 oct. 2004 à 13:35
Merci beaucoup pour ta source que je vais exploiter pour comprendre 10/10 car tres bien commentée.
31 oct. 2004 à 01:55
C'est quoi la différence avec le "And" classique ?