Witam!
Mam pewien problem z swoją funkcją, chodzi dokładnie o to że jest tam sobie pętla zagnieżdzona w drugiej pętli, i one operują na dwóch tablicach dwuwymiarowych, w jakiś sposób przekształcając jej wspólne elementy. Dokładniej funkcja ma za zadania nałożyć jeden obrazek na drugi. Ładuje jeden obrazek(640x640)(argument funkcji) i potem próbuję nałożyć na niego drugi(powiedzmy 25x25) i wtedy, te pierwsze 25x25 jest zrobione dobrze, natomiast reszta pozostaje biała, żeby było jeszcze ciekawiej, okazuje się że skrajne piksele na każdym boku zostają bez zmian.
Wzór na nakadanie jeszcze dopracuję, ale chciałem najlepiej zobaczyć jak to będzie wyglądać...
i i j są dobre, wyświetliłem je wszystkie po kolei i pasowało.
[code]
typedef struct pgm_file{
char file_name_in[FILE_NAME_MAX_LENGHT]; //Nazwa pliku wejsciowego
char file_name_out[FILE_NAME_MAX_LENGHT]; //Nazwa pliku wyjsciowego
int sizex; //Szerokosc obrazu
int sizey; //Wysokosc obrazu
int grayscale; //Skala szarosci obrazu
int display;
FILE *file; //Wskaznik na plik
int **picture; //Dwuwymiarowa tablica informacji o poszczegolnych pikselach obrazu
int debug; //Zmienna logiczna, przechowuje informacje czy pokazywac dodatkowe komunikaty
} pgm;
void cover(pgm **pgm_file, char *name)
{
pgm sec_file;
sec_file=(pgm) malloc(sizeof(pgm));
strcpy(sec_file->file_name_in, name);
sec_file->debug=(*pgm_file)->debug;
if(!load_file(&sec_file))
{
int i,j;
for(i=(min((*pgm_file)->sizey, sec_file->sizey)-1);i>=0;i--)
{
for(j=(min((*pgm_file)->sizex, sec_file->sizex)-1);j>=0;j--)
{
(pgm_file)->picture[i][j]=(((sec_file->picture[i][j])(((*pgm_file)->grayscale)-((*pgm_file)->picture[i][j])))/(sec_file->grayscale));
}
}
_DEBUG("Covering finished \n");
}
free(sec_file);
}
[/code]
Dla obrazków o tych samych wymiarach również funkcjia działa dobrze.