Evo jedan
program. (oko 11 KB, stavio sam na sendspace) samo izvorni kod bez exe fajla, i nekoliko primera 8-bitnih .bmp slika sa konturama.
Slika se ucitava direktno iz .bmp fajla, bez koriscenja LoadPicture.
Program prepoznaje da li je slika 8-bitna (ako nije tada je ne ucitava) i iscrtava je u PictureBox-u.
Takodje se ne ucitava ako je veca od 800x600 (razlog je cisto estetski).
Prvo se ucita slika, potom je potrebno kliknuti (samo jednom, najbolje unutar konture) na sliku i program ce automatski naci da li na slici postoji barem jedna kontura koja je zatvorena. Usput ce i obojiti unutrasnjost konture.
Moze da izracuna povrsinu konture (ako je zatvorena), a moze i povrsinu oko konture, sve zavisi gde se klikne (unutar ili van nje). Moze da nadje i povrsinu vise kontura.
U programu se nalaze dve fukcije koje ispituju da li je kontura zatvorena:
* sa FOR petljom, spora.
* sa improvizovanom FIFO memorijom (fu-ja je brza 10-tak puta, mozda i vise )
Funkcije rade tako sto se odabere proizvoljna tacka sa slike (klikom misa, a moglo bi i recimo slucajnim izborom) i potom se Ispituju tacke koje okruzuju tu tacku.
I tako dalje testiranje se siri kao talas u vodi, sa centrom u odabranoj tacki.
Ako je kontura zatvorena talas ce "stici do ivica konture" i tu se "zaustaviti". Ako je kontura otvorena, talas ce nastaviti i preci preko cele slike.
Boja pozadine nije bitna, samo je vazno da je iste boje na celoj slici, tj jednobojna.
Za boju konture je preporucljivo da bude crna (tada moze da izracuna obim i odgovori na pitanje da li je kontura zatvorena).
Ako nije crne boje tada moze da izracuna samo povrsinu i naravno da oboji povrsinu konture.
Program je pravljen u VB 5.0 , pa probaj umesto .vbp da ucitas .frm fajl.
malo o bmp fajlu.
8 - bitna bmp slika (napravljenja u Paint-u) se sastoji iz dva dela:
1. Uvoda (zaglavlja) od 1078 bajtova
(ako racunamo heksadecimalno od 00, a decimalno od 1):
* na 02h - 05h (3. - 6. bajta u fajlu) se nalazi velicina .bmp fajla.
* na 12h - 14h (19. - 21. bajta ) sirina slike
* na 16h - 18h (23. - 25. bajta ) visina slike
* na 1Ch. (29. bajt ) informacija o slici (8-bitna, 16- bitna, 24-bitna...)
* na 22h - 25h (35. - 38. bajta ) velicina same slike u bajtovima
* od 36h - 435h (55. - 1078 bajta ) nalazi tabela sa bojama,tj svaka vrednost iz intervala 0-255 (8-bita) se zamenuje odgovarajucom bojom iz tabele.
2. Slike - sastoji se iz (sirina x visina) bajtova.