[ shmuki @ 23.04.2007. 14:08 ] @
Imam problem sa zadatkom,ako neko ima ideju odakle da pocnem posto sam pocetnik u C-programiranju:

Data je binarna slika tipa bitmap(sa ekstenzijom .bmp),tako sto je svaki piksel kodiran sa 1 bitom.Treba se napisati program koji prvo ucitava binarnu sliku.Ako slika nije tipa .bmp,bitmap nije kodiran sa 1 bitom za piksel,ili je doslo do neke druge greske tokom ucitavanja bitmapa tako da se izlazi iz programa...Ako je prosao test za bitmap,izlazna slika se dobija iz ulazne sa procedurom:
---------Ucitava se jedan jedan red ulaznog bitmapa,iz ovog reda se ucitavaju 8 piksela odjednom i svaki prvi piksel(od 8 ucitanih) treba da se pretvori u bijelu boju(vrednost piksela mora biti 1),a svaki peti piksel(od 8 ucitanih) pretvara se u crnu boju(vrijednost piksela treba biti 0).Dakle,gledajuci tabelu(pozicija 1 treba imati vrijednost 1,,pozicija 5 treba imati vrijednost 0,a ostali izlazni bitovi moraju biti isti kao ulazni.
Kada se zavrsi ova procedura za jedan red, treba se ponoviti za sve redove bitmapa...

Napomena: Ako je jedan bite u heksadecimalnom obliku:0X65,u bonarnom qe biti
00110 0101.Pozicije bitova ce biti:

Pozicija: 7 6 5 4 3 2 1 0
Bitovi : 0 1 1 0 0 1 0 1


Unapred hvala!
[ nikoladsp @ 24.04.2007. 12:37 ] @
cao,
ovo je mali programcic u C-u koji sam namuljao nabrzinu, pa se nemoj puno pouzdati u tacnost. imas ovde VS6 projekat, mozes ga importovati u bilo koji studio koji je noviji. posto je "cist" C, ne bi trebalo d aimas problema da ga iskoristis sa bilo kojim drugim kompajlerom.

provere gresaka treba uraditi mnogo bolje, takodje fread i fwrite sam uzeo da ce uspeti da ucitaju/upisu u jednoj iteraciji, sto u opstem slucaju nije tacno, znaci treba ti neka while petlja...

takodje moras biti svestan da je velicina bmp fajla u stvari sirina*visin8broj_bajta_po_pixelu (npr 800*600*3, za sliku 24bpp). heder nisam menjao, niti sam odredio programski njegovu velicinu, sto bi u realnoj aplikaciji trebalo...

program se pokrece sa
Code:
picture.bmp 800 600 24


naravno data slika mora biti u direktorijumu gde je i izvrsni fajl.

nadam se da ti je pomoglo bar malo.

ps. komentare nisam stigao da pisem, ovo sam radio za vreme pauze na poslu