gustifotz | Salut les gens,
Je me galère avec un message d'erreur qui apparaît suite à l'exécution de ce prog, un truc genre "Impossible d'écrire en mémoire". Je comprends pas trop d'où ca vient puisque j'alloue de l'espace mémoire, tout bien quoi. Enfin je trouve que c'est tout bien mais ptêt que y a une erreur qui vous saute aux yeux et pas à moi.
Le prog sert à identifier les pixels contenus dans une forme quelconque, de contour noir, et à les colorier en rouge.
Code :
- void ChangeColor (int picwidth, int picheight, CDC* pDC)
- {
- int (*tab)[800] = new int[400][800];
- int right, left, up, down;
- for (int i = 0; i <= picheight; i++)
- {
- for (int j = 0; j <= picwidth; j++)
- {
- if (pDC->GetPixel (j, i) == RGB (0, 0, 0))
- tab [j][i] = 1;
- else
- tab [j][i] = 0;
- }
- for (int k = 0; k <= picwidth; k++)
- {
- for (int l = k+1; l <= picwidth; l++)
- if (tab [l][i] == 1)
- {
- right = 1;
- break;
- }
- else
- right = 0;
- for (int m = k-1; m >= 0; m--)
- if (tab [m][i] == 1)
- {
- left = 1;
- break;
- }
- else
- left = 0;
- for (int n = i-1; n >= 0; n--)
- if (tab [k][n] == 1)
- {
- up = 1;
- break;
- }
- else
- up = 0;
- for (int p = i+1; p <= picheight; p++)
- if (tab [k][p] == 1)
- {
- down = 1;
- break;
- }
- else
- down = 0;
- }
- for (int q = 0; q <= picwidth; q ++)
- if (right * left * up * down == 1)
- pDC->SetPixel (q, i, RGB (255, 0, 0));
- }
- delete [] tab;
|
Merci pour le coup de pouce . |