Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void charToPixel(int tab[], int w, Char c, int pTab[])
- {
- int m = c.w;
- if(m < c.h)
- {
- m = c.h;
- }
- int cTab[m*m];
- squareBorder(tab, w, cTab, c, m);
- properSquare(cTab, m, pTab);
- }
- void squareBorder(int tab[], int w, int cTab[], Char c, int m)
- {
- if(m == c.h)
- {
- int nbWhCol = (m - c.w) /2;
- for(int x = 0; x < m; x++)
- {
- for(int y = 0; y < m; y++)
- {
- if(x < nbWhCol || x > (nbWhCol + c.w))
- {
- cTab[(y*m)+x] = 0;
- }
- else
- {
- cTab[(y*m)+x] = tab[((y+c.y)*w)+(x+c.x)];
- }
- }
- }
- }
- else
- {
- int nbWhRow = (m - c.h) /2;
- for(int y = 0; y < m; y++)
- {
- for(int x = 0; x < m; x++)
- {
- if(y < nbWhRow || y > (nbWhRow + c.h))
- {
- cTab[(y*m)+x] = 0;
- }
- else
- {
- cTab[(y*m)+x] = tab[((y+c.y)*w)+(x+c.x)];
- }
- }
- }
- }
- }
- void properSquare(int cTab[], int m, int pTab[])
- {
- int s = 16; //Taille pTab
- int t = s*m; //Taille tempTab
- int tempTab[t*t];
- for(int x = 0; x < t; x++)
- {
- for(int y = 0; y < t; y++)
- {
- tempTab[x*t + y] = cTab[(x/s)*m + (y/s)];
- }
- }
- for(int x = 0; x < s; x++)
- {
- for(int y = 0; y < s; y++)
- {
- int nbB = 0;
- int nbW = 0;
- for(int i = 0; i < m; i++)
- {
- for(int j = 0; j < m; j++)
- {
- if(tempTab[(x*m + i)*m + (y*m + j)])
- nbB++;
- else
- nbW++;
- }
- }
- if(nbW > nbB)
- {
- pTab[x*s+y] = 0;
- }
- else
- {
- pTab[x*s+y] = 1;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement