[ cesare @ 17.11.2012. 18:04 ] @
Pozdrav svima !!!!!

Imam sliku Srbije podeljenu po regionima gde je svaki region obojen drugom bojom. Slika je u .gif formatu da bi ostatak slike (pozadina) bila transparentna. Ta slika se prilikom pokretanja aplikacije učitava u PictureBox kontrolu i služi za dalju navigaciju kroz aplikaciju. Znači korisnik bi trebalo da klikne na neki region i da se učita slika njegovih okruga. Svaki region je druge boje jer sam pretpostavio da ću tako moći da utvrdim koji je region korsnik odabrao. Tu nastaje problem. U MouseMove događaju PictureBox kontrole sam koristio kod

Code:

((Bitmap)pctIzbor.Image).GetPixel(e.X, e.Y)


da bih dobio boju pixela na trenutnoj lokaciji miša na slici. Da bih dobio oznaku boje regiona koristio sam program Color Cop uz pomoć kog sam bio HEX vrednost boje. Kod koji sam koristio da bih uporedio boju pixela i boju regiona je

Code:

((Bitmap)pctIzbor.Image).GetPixel(e.X, e.Y).Name == ColorTranslator.FromHtml("#98C445").Name


Tu nastaje problem. Funkcija GetPixel ni jednog trenutka ne pronalazi na slici boju koja bi trebalo da bude konstanta (izraz desno u jednakosti). Čak na celoj regiji na slici sa istom bojom, pronalazi nekoliko različitih vrednosti za boju, iako je sve obojeno bez ikakvih efekata (jedna ista boja pokriva celu površinu regiona). Gde je ovde greška? Postoji li neki drugi način da se ovo reši?

Unapred hvala...
[ dusans @ 17.11.2012. 18:33 ] @
Uporedi r, g, b vrednosti boje umesto imena.
[ cesare @ 18.11.2012. 07:06 ] @
Glavni problem je u tome što GetPixel() ne vraća istu boju pixela na celoj površini koja je obojena istom bojom. Kako to rešiti?
[ cesare @ 18.11.2012. 11:08 ] @
Otkrio sam zašto GetPixel() ne vraća ispravno boju pixela. Uzimaju se vrednosti pozicije miša u PictureBox kontroli, a traži se boja pixela iz Bitmap objekta u memoriji. A podesio sam da PictureBox kontrola prikayuje sliku u Zoom modu, da bi uvek bila prikazana na ekranu kako treba. Zato je moje sledeće pitanje: Kako podesiti i Bitmap-u u memoriji da bude ista kao i prikaz PictureBox kontrole?
[ dusans @ 18.11.2012. 12:19 ] @
Nema potrebe da to radiš što hoćeš.
Dovoljno je da uradiš proporciju Width-a Bitmap-a i Width-a Picture Box-a (analogno i za Height-te).
Na osnovu tih proporcija sračunaš poziciju za GetPixel.

Pozdrav!