cs_Kariar
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention24 mai 2007
-
10 avril 2007 à 13:42
cs_Kariar
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention24 mai 2007
-
12 avril 2007 à 10:06
Salut à tous,
je voulais savoir comment on pouvait, avec VB, faire changer le contraste seulement à des endroits d'une image?
Exemple: on joue diminue le contraste de la barre inférieur d'un "E" et on obtient donc un "F"....
Donc en clair est ce que vous savez comment on peut influencer une ligne faisant partie d'une image?
J'ai regardé les codes où on influence sur le contraste mais j'ai pas trop saisi les histoires de pixels remplacer par d'autre pixel dont on change les RGB, d'autant plus que je ne souhaite que travailler en noir et blanc....
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 avril 2007 à 14:01
Bonjour,
Que tu travailles en couleurs ou en noir et blanc n'a rien à voir.
Les exemples que tu as vus (dont le mien, probablement), modifient le contraste de pixels .
Commençons donc par la définition du mot contraste : il ne peut s'appliquer à une seule couleur, bien évidemment, mais à au moins deux couleurs (celle d'un pixel d'une couleur et celle d'un pixel voisin d'une autre couleur) !!!
En d'autres termes : ne pas confondre contraste avec éclaircissement ou assombrissement d'une seule couleur !
Dans de telles conditions : "influencer une ligne " n'a aucun sens lorsque l'on parle de contraste, bien évidemment !
quant à limiter la zone d'application de contraste, ma foi, rien n'est plus simple : il te suffit de "contraster" une zone rectangulaire dont la position et les dimensions ne sont pas celles de la totalité de ta PictureBox mais définies comme tu l'entends (pour correspondre à la seule zone que tu veux "contraster").
Les codes que tu as vus restent donc à appliquer tels quels, sauf à modifier (dans la double boucle de traitement) les coordonnées de la zone rectangulaire à "balayer" et "contraster".
J'espère que tout celà n'est pas du chinois pour toi (je ne le pense pas, dès lors que tu veux traiter des images...)
cs_Kariar
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention24 mai 2007 10 avril 2007 à 17:06
Salut,
si j'ai bien compris il suffirait que je reprenne cette partie du programme tiré de ton "éditeur d'image" et que j'en chage les coordonnées finales:
Private Sub Command12_Click()
Dim PointColor As Long
Dim R, V, B
Dim R2, V2, B2
re = InputBox("Limitez les couleurs à ... couleurs par réseaux.", "Limitation des couleurs", "10")
If re = "" Then Exit Sub
For x = 0 To P.ScaleWidth - 2
For y = 0 To P.ScaleHeight - 2
PointColor = P.Point(x, y)
R = Int(PointColor Mod 256)
V = Int((PointColor - R) / 256 Mod 256)
B = Int((PointColor - R) / 256 / 256)
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - R) < d Then d Abs(Cr - R): R Cr
Next Cr
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - V) < d Then d Abs(Cr - V): V Cr
Next Cr
d = 255
For Cr = 0 To 255 Step 255 / reIf Abs(Cr - B) < d Then d Abs(Cr - B): B Cr
Next Cr
VerifColor R2, V2, B2
P.PSet (x, y + 1), RGB(R2, V2, B2)
Next yIf x Mod 50 0 Then S1.Width (x / P.ScaleWidth) * Me.Width
Next x
End Sub
Ta solution s'adapterai bien à des figures simples tel que les chiffres et les lettres mais je dois aussi traviller sur de figures plus complexes!!
Il y aurait-il un moyen de faire d'autre forme de figure ou alors il faudrait utiliser une solution tout autre?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 avril 2007 à 17:15
Le code que tu montres n'es pas de moi (je ne reconnais pas mon écriture habituelle) et je ne me rappelle pas avoir déposé un "éditeur d'images" !!!
Ce code traite apparemment de la modification des couleurs (en fonction d'un choix de profondeur) d'un objet P entier ...(sur toute sa largeur et toute sa hauteur), pas sur une partie seulement ...
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 avril 2007 à 17:16
Le code que tu montres n'es pas de moi (je ne reconnais pas mon écriture habituelle) et je ne me rappelle pas avoir déposé un "éditeur d'images" !!!
Ce code traite apparemment de la modification des couleurs (en fonction d'un choix de profondeur) d'un objet P entier ...(sur toute sa largeur et toute sa hauteur), pas sur une partie seulement ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_Kariar
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention24 mai 2007 11 avril 2007 à 09:46
Si ce ne sont pas ces codes là que tu évoquais dans ton premier message lesquels sont ils?
J'ai été voir tes codes avec le programme pour le bateau et je ne comprend pas comment tu réussis mettre en liaison la nouvelle valeur du contrsate et la Picturebox!!!
De plus je ne vois vraiment pas où je pourrais inflencer la "taille" de la fenêtre d'application!?!
Sinon je me demander de ce que tu pensais de cette solution (même si je ne connais pas encore assez VB6 pour la réaliser):
Si je met une association d'images et que je fasse intervenir le contraste uniquement sur certaines images le tour serait joué non! (ex: je créer l'image d'un "F" et je rajoute l'image d'une barre pour faire le "E" et je n'intervient que sur cette dernière)
cs_Kariar
Messages postés20Date d'inscriptionmardi 10 avril 2007StatutMembreDernière intervention24 mai 2007 11 avril 2007 à 09:46
Si ce ne sont pas ces codes là que tu évoquais dans ton premier message lesquels sont ils?
J'ai été voir tes codes avec le programme pour le bateau et je ne comprend pas comment tu réussis mettre en liaison la nouvelle valeur du contrsate et la Picturebox!!!
De plus je ne vois vraiment pas où je pourrais inflencer la "taille" de la fenêtre d'application!?!
Sinon je me demander de ce que tu pensais de cette solution (même si je ne connais pas encore assez VB6 pour la réaliser):
Si je met une association d'images et que je fasse intervenir le contraste uniquement sur certaines images le tour serait joué non! (ex: je créer l'image d'un "F" et je rajoute l'image d'une barre pour faire le "E" et je n'intervient que sur cette dernière)
J'ai tenté de faire un programme qu'avec ce module masi je n'y arrive pas!
Quelqu'un peut il me renseigner sur la méthode à adopter?
Pour info:
J'avais commencer par créer un nouveau module puis copier le "contraste.bas" dedans.
Puis j'ai créer une picturebox "picdest" et une "picsource", un "valcontrast" et une commande "contraste" (tout à l'image du programme initiale)
Le programme ne m'affiche pas d'erreur masi ne fonctionne pas pour autant........................