1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| void ajout_bordure(int *image, unsigned char *image_finale, int *tailles)
{
int i, j, k, l, m, n, zone_per_row, init_i;
int i_limit1, i_limit2, j_limit1, j_limit2;
int firstK, lastK;[/img]
int zone_length, zone_number;
int test = 0, test2, test3;
unsigned char **zone;
char nom[10]="titi.tiff";
//le but est de séparer une images en tailles[2] zones, (1, 4, 16 ou 36)
//tailles[2] : nombre de zones
//tailles[0]+tailles[1] sont nos données (je fais la conversion octet à binaire avec le *8)
zone_length = (tailles[0]+tailles[1])*8 / tailles[2];
//Je définis un double tableau avec en abscisses le nb de zones et en ordonnées la taille des donées par zones
firstK = 0;
zone = (unsigned char **) malloc (sizeof(unsigned char *) * tailles[2]);
if (zone == NULL)
{
fprintf(stderr,"Allocation zone impossible \n");
exit(EXIT_FAILURE);
}
for(zone_number=0;zone_number<tailles[2];zone_number++)
{
zone[zone_number] = (unsigned char *) malloc (sizeof(unsigned char ) * zone_length);
if (zone[zone_number] == NULL)
{
fprintf(stderr,"Allocation zone[%d] impossible \n", zone_number);
exit(EXIT_FAILURE);
}
}
i = 0;
init_i = 0;
l = 0;
zone_per_row = (int) sqrt(tailles[2]);
for(n=0;n<sqrt(tailles[2]);n++)
{
for(zone_number=0;zone_number<sqrt(tailles[2]);zone_number++)
{
//i = zone_number * zone_length + n * zone_length * zone_length * sqrt(tailles[2]);
for(m=0;m<sqrt(zone_length);m++)
{
k=0;
for(l=0;l<sqrt(zone_length);l++)
{
//dans la boucle je remplis juste une ligne d'une zone
zone[zone_number][k] = image[i];
k++;
i++;
}
test3 = (int) sqrt(zone_length);
if(i % ((zone_length)) != 0)
{i = i + sqrt(zone_length) * (sqrt(tailles[2]) - 1);}//à l'interieur d'une zone: de ligne à la ligne suivante
else
{
i = i + 1;//de la derniere ligne de la zone p à la premiere ligne de la zone p+1
break;
}
}
i = init_i + sqrt(zone_length); //de zone (d'une meme ligne) à zone de la même ligne
}
}
// dans le bloc ci dessus j'ai essayé de séparer mes données en "tailles[2]" blocs
//i = writetiff(nom, zone[0], tailles[4], tailles[4]); |
Partager