RGB <-> Pixel muunnokset

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

RGB <-> Pixel muunnokset

Post by MaGetzUb »

Tuli tehtyä tämmöinen muutaman minuutin projekti ajatellen muita cb ohjelmoijia, jotka ei osaa tämmöisiä systeemejä. :)
Nämä löydät myös CB Repositorystä
Eli PixToRGB(pix, rgbkanava) palauttaa yhden rgb arvon kerrallaan pixel arvosta.
Ja sitten RGBToPix(r, g, b) muuttaa rgb värin pikseliarvoksi.

Code: Select all

//Esimerkki

Dim palette(3) As Integer 
Dim names(3) As String

palette(0) =  DS_RGBToPix(255, 255, 255) 'cbwhite
palette(1) =  DS_RGBToPix(255, 0, 0) 'cbred
palette(2) = DS_RGBToPix(207, 185, 237) 'cblightpurple
palette(3) = DS_RGBToPix(123, 90, 0) 'cbblackskin

names(0) = "cbwhite"
names(1) = "cbred"
names(2) = "cblightpurple"
names(3) = "cbblackskin"

For i = 0 To 3
    Color 0, 0,palette(i)
    Print names(i) +"; "+ palette(i)
Next i
Print ""
Color cbwhite

For i = 0 To 3
    Color DS_PixToRGB(palette(i), RED), DS_PixToRGB(palette(i), GREEN), DS_PixToRGB(palette(i), BLUE)
    Print names(i)
    For j = 1 To 3
        Print "    "+DS_PixToRGB(palette(i), j)
    Next j
Next i

WaitKey 

//Funktiot//

Function DS_PixToRGB(pixel, rgbchannel)
    Return ((pixel Shl (rgbchannel*8)) Shr 24)
EndFunction 

Function DS_RGBToPix(r, g, b)
    Return b + r Shl 16 + g Shl 8
EndFunction 
EDIT:

Niin ja kertokaa heti kaikki epäkohat, joita löydätte. Olen siihen nyt varautunutkin.. x)

Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.
Post Reply