// Proportions de couleur pour du VRAI noir et blanc (pas tout à fait sûr des valeurs) float propR = 0.3; float propG = 0.6; float propB = 0.1; Color c = MaBitmap.GetPixel(x, y); int valeur = (int)(c.R * propR + c.G * propG + c.B * propB);
float propR = 0.3; float propG = 0.6; float propB = 0.1; int[] tableau = new int[256]; for (int i 0; i < 256; i++) tableau[i] 0; // Normalement pas nécessaire unsafe { BitmapData MaBmpData = MaBitmap.LockBits(new Rectangle(0, 0, MaBitmap.Width, MaBitmap.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); byte* pixelActuel = (byte*)(void*)MaBmpData.Scan0; for (int y = 0; y < MaBitmap.Height; y++) { for (int x = 0; x < MaBitmap.Width; x++) { int valeur = (int)(pixelActuel[1] * propR + pixelActuel[2] * propG + pixelActuel[3] * propB); // Il faut peut-être remplacer les indices par 0 1 2 // (je ne sais plus si le pixel alpha est avant ou après les pixels de couleur) tableau[valeur]++; // On n'oublie pas de déplacer le pointeur de lecture pixelActuel += 4; // Ou 3 en 24 bits } } MaBitmap.UnlockBits(MaBmpData); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question