#include "FermOuv.h"

//Fonction réalisant une fermeture (Dilatation puis Erosion) ou une ouverture (Erosion puis Dilatation)
void FermOuv(Piquesel** tableau,char* sortie,int taille0,int taille1,int k){
	FILE* image = NULL;
	image = fopen(sortie,"w+");
	int i,j;
	int taille[2] = {0};
	taille[0]=taille0;
	taille[1]=taille1;
	
	Piquesel **newTabl = malloc(sizeof(Piquesel*) * taille[1]);
	for (i=0 ; i<taille[1] ; i++){
		newTabl[i] = malloc(sizeof(Piquesel) * taille[0]);
	}
	if (k==1){
		//On applique la fermeture
		newTabl=Dil(tableau,taille);
		newTabl=Ero(newTabl,taille);
	}else{
		//On applique l'ouverture
		newTabl=Ero(tableau,taille);
		newTabl=Dil(newTabl,taille);
	}
	if (image == NULL){
		printf("Impossible d ouvrir le fichier\n");
	}else{
		fprintf(image, "P3\n");
		fprintf(image, "%d %d\n", taille[0],taille[1]);
		fprintf(image, "255\n");
		for (i=0 ; i<taille[1]; i++){
			for (j=0; j<taille[0]; j++){	
				fprintf(image, "%d\n", (newTabl[i][j]).Red);
				fprintf(image, "%d\n", (newTabl[i][j]).Green);
				fprintf(image, "%d\n", (newTabl[i][j]).Blue);
			}
		}
	}
	free(newTabl);
}

