On kaunista ja voi vaan kattella vierestä kun laittaa rgb -funktiolle punasen, vihreen ja sinisen. Sitten siitä tulee käsittämätön (heksa?)luku, jonka kone tulkkaa väriks. Mut entäs toisinpäin, että miten tosta luvusta voi kaivaa ne päävärit?
PS. Voi olla että aihetta on jo pengottu putkassa tai muualla mutta en vaan löytäny mistään.
Dim vari As Long Dim r As Integer, g As Integer, b As Integer vari = RGB(12, 34, 56) r = vari Mod 256 g = (vari \ 256) Mod 256 b = vari \ 65536 MsgBox r & " " & g & " " & b
Kysyin kerran ite kans samaa asiaa. Laaksonen pistä tuollaisen koodin, joka on huomattavasti nopeampi kuin itse kehittämäni keino.
WinAPI:sta löytyy seuraavat makrot tarkoitukseen:
GetRValue, GetGValue ja GetBValue.
Ote Win32 SDK:sta:
BYTE GetRValue( DWORD rgb // 32-bit RGB value );
En tiedä pitääkö nämä VB:ssä esitellä jollain tavalla, kertokaa joku joka tietää :).
kiitos hunajavohveli
tietenkin, noi numerot 256 ja 65536 kuulostaa jotenkin tutuilta :D
tuota zacura, nyt kyselen tyhmiä mutta mikä on WinApi?
Puhveli kirjoitti:
nyt kyselen tyhmiä mutta mikä on WinApi?
API=Application Programming Interface.
WinApi on rajapinta jonka avulla ohjelmoijat voivat käyttää Windowsin funktioita.
Katso myös Visual Basic oppaa osaa 9: https://www.ohjelmointiputka.net/oppaat/opas.
Juu tokihan noi numerot tuttuja on sillä nehän ovat kakkosen potensseja. Aluksihan oli vain 16 väriä. Sitten 16^2 ja saatiin 256 väriä ja sitten 256^2 niin tuli 65536 väriä. Eli toi 16 väriä on 4-bittinen, 256 on 8-bittinen ja 65536 on 16-bittinen.
yup. kiitos zakuralle ja vohvelille
Aihe on jo aika vanha, joten et voi enää vastata siihen.