Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: rgb ja silleen

Puhveli [04.04.2004 19:39:46]

#

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.

hunajavohveli [04.04.2004 20:01:24]

#

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.

zacura [05.04.2004 15:30:08]

#

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ää :).

Puhveli [05.04.2004 18:42:05]

#

kiitos hunajavohveli
tietenkin, noi numerot 256 ja 65536 kuulostaa jotenkin tutuilta :D

tuota zacura, nyt kyselen tyhmiä mutta mikä on WinApi?

zacura [05.04.2004 19:43:00]

#

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.php?tunnus=vbo_9

hunajavohveli [05.04.2004 22:08:58]

#

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.

Puhveli [06.04.2004 16:35:10]

#

yup. kiitos zakuralle ja vohvelille

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta