1. Wczytać obraz.
2. Zakończyć działanie
Jeśli w czyta obraz, to powinno mu się pojawić 5 nowych opcji
1-4. jedna z funkcji przetwarzania
5. wczytanie innego obrazu czyli powrót do poprzedniej części menu.
Tej drugiej części zupełnie nie umiem napisać.
Kod: Zaznacz cały
/* Menu które na razie ma tylko dwie funkcje */
int main() {
int obraz[MAX][MAX] ;
int wymx,wymy,odcienie;
int odczytano = 0;
FILE *plik;
char nazwa[100];
/* Wczytanie zawartosci wskazanego pliku do pamieci */
while(1>0)
{
printf("Program przetwarza obrazy pgm.\nWybierz akcję: \n1. Wczytaj obraz\n2. Zakończ\n");
int wybor;
scanf("%d",&wybor);
switch(wybor)
{
case 1:
printf("Podaj nazwe pliku:\n");
scanf("%s",nazwa);
plik=fopen(nazwa,"r");
if (plik != NULL) /* co spowoduje zakomentowanie tego warunku */
odczytano = czytaj(plik,obraz,&wymx,&wymy,&odcienie);
fclose(plik);
/* Wyswietlenie poprawnie wczytanego obraza zewnetrznym programem */
if (odczytano != 0)
wyswietl(nazwa);
return odczytano;
case 2:
printf("Program zakończył działanie.\n");
return 0;
default:
printf("Wybór nie poprawny!\n");
}
}
}
Kod: Zaznacz cały
/* Pominiecie komentarzy */
do {
if ((znak=fgetc(plik_we))=='#') { /* Czy linia rozpoczyna sie od znaku '#'? */
if (fgets(buf,DL_LINII,plik_we)==NULL) /* Przeczytaj ja do bufora */
koniec=1; /* Zapamietaj ewentualny koniec danych */
} else {
ungetc(znak,plik_we); /* Gdy przeczytany znak z poczatku linii */
} /* nie jest '#' zwroc go */
} while (znak=='#' && !koniec); /* Powtarzaj dopoki sa linie komentarza */
/* i nie nastapil koniec danych */
Kod: Zaznacz cały
/* Pobranie obrazu i zapisanie w tablicy obraz_pgm*/
for (i=0;i<*wymy;i++) {
for (j=0;j<*wymx;j++) {
if (fscanf(plik_we,"%d",&(obraz_pgm[i][j]))!=1) {
fprintf(stderr,"Blad: Niewlasciwe wymiary obrazu\n");
return(0);
}
}
}
return *wymx**wymy; /* Czytanie zakonczone sukcesem */
} /* Zwroc liczbe wczytanych pikseli */
Pilnie proszę o pomoc, ponieważ goni mnie termin oddania zadania. Z góry dziekuję za zainteresowanie tematem.
Draggie.