Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Värikoodin pilkkominen väreiksi VB

hunajavohveli [18.03.2004 20:58:36]

#

Miten saisi nopeasti pilkottua VB:n värikoodin kolmeksi väriksi, eli punaiseksi, vihreäksi ja siniseksi? Meinasin ensin tehdä tähän oman systeemin silmukoilla ja if-lausekkeilla, mutta siitä ei olisi tullut alkuunkaan nopea. Muistaakseni tämän sai kätevästi bittioperaattoreilla, mutta en nyt taas muista miten.

Edit: Taisin kysellä kerran samaa QB:n suhteen, mutta QB:ssähän on vain 64 eri "voimakkuutta" väreille, vaikka typerästi seuraavat värit on kuitenkin kerrottava 256:lla ja 65536:lla. Eli QB:ssä väliin jäisi käyttämättömiä värikoodeja.

setä [18.03.2004 21:06:12]

#

R = V and 255
G = V\256 and 255
B = V\65536
Edit Korjasin R ja B

rndprogy [18.03.2004 21:06:41]

#

rgb(255, 0, 0) on punainen. Vai mitä okein tarkoitit

Edit: niin just ehdi vaikka väliin, setä

Antti Laaksonen [18.03.2004 21:10:30]

#

Tapoja on varmasti useampia, tässä on käytetty apuna jakolaskua ja jakojäännöstä.

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

hunajavohveli [18.03.2004 21:12:46]

#

Joo rndprogy, ymmärsit muuten oikein, mutta tarkoitin päinvastaista kääntämistä, että värikoodi puretaan väreiksi, eikä värit värikoodiksi. Tuo sedän esimerkki näkyisi toimivan.

Edit: Joo, Laaksosenkin koodi osoittautui hyödylliseksi.

ZcMander [18.03.2004 21:13:59]

#

Nopeaa keskustelua, kiitos taas kaikkien aktiivisten koodaajien ja Antti Laaksossen ;)

Vastaus

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

Tietoa sivustosta