Passage d'image en couleur en nuance de gris?

hagen132456
Messages postés
25
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 juillet 2005
- 5 juil. 2005 à 16:14
 rgb - 19 sept. 2018 à 14:06
bonjour à tous.

Voila j'ai un petit souci en C#.
j'aimerais traiter un image couleur, par example un screenshot, et grace à une fonction l apasser en noir et blanc ou plutot nuance de gris....
Je ne vois pas commetn faire cela.
si kk1 à deja été face à ce problème ou saurais m'aiguiller ca serait bien sympathique.

Merci @ vous;
bon courage et @++

7 réponses

Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
Modifié le 19 sept. 2018 à 21:58
J'ai testé ma formule, elle marche bien mais j'ai l'impression que l'image est plus fade qu'avec la méthode que tu as trouvé Mx.
int rgb;
Color pixel;
    
for ( int x = 0; x < bmp.Width; x++ )
{
    for ( int y = 0; y < bmp.Height; y++ )
    {
        pixel = bmp.GetPixel( x, y );
        rgb = ( pixel.R + pixel.G + pixel.B ) / 3;
        bmp.SetPixel( x, y, Color.FromArgb( rgb, rgb, rgb ) );
    }
}


EDIT : Ajout des balises de code
1
Merci gros t'as sauvé ma scolarité
0
:)
0
:)
:)
:):
:):
:)::):
:):
:):
:):
0
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
5 juil. 2005 à 16:25
Salut, je savais mais je ne sais plus :(
Je crois que la formule c'est qlq'chose comme ca:

pour chaque pixels:

temp = ( Red + Green + Blue ) / 3;
Red Green Blue = temp;
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
Modifié le 19 sept. 2018 à 21:58
Tu peux trouver une telle méthode sur cette source

public static bool GrayScale(Bitmap bmp)

        {

            try

            {

                for(int y = 0; y < bmp.Height; y++)

                {

           
        for(int x = 0;x < bmp.Width;
x++)

                    {

           
            Color c =
bmp.GetPixel(x, y);

           
            int luma =
(int)(c.R * 0.3 + c.G * 0.59+ c.B * 0.11);

           
           
bmp.SetPixel(x, y, Color.FromArgb(luma,luma,luma));

                    }

                }

                return true;

            }

            catch(Exception){ return false; }

        }


EDIT : Ajout des balises de code

Mx
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
5 juil. 2005 à 17:48
J'ai l'impression qu'elle rend juste un peu moins le foncé, mais elle reste tout a fait valable

Mx
0

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

Posez votre question
Lutinore
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 octobre 2012
42
5 juil. 2005 à 17:55
J'avais pas vu que c'était une source à toi.. Moi aussi je travaille sur Lena, j'aime bien lui faire "des trucs" à Lena : ))
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
5 juil. 2005 à 17:56
Chouette, un autre fan de Lena :)

Mx
0
hagen132456
Messages postés
25
Date d'inscription
lundi 25 avril 2005
Statut
Membre
Dernière intervention
27 juillet 2005

5 juil. 2005 à 17:59
Yo merci pour cette réponse si rapide.
je débutte dans le C# donc je misère un peu mais bon me suis formé seul donc ben.....

Je teste ca demain et validerai la réponse.
Un grand merci encore @ MX et LUTINORE

j'ai plusieurs autres tits souci en fait donc je vais vous réembeter assez rapidement .

Je développe des composants pour une boite et je vais poser mes sources d'ici quelques temps et regardant si elle peuvent étoffer la liste sinon je m'abstiendrai.

en tout cas il ya vraiment plein de truc intéressant sur ce site!
Vraiment génial en somme!
encore merci ++
0