Värien pakkaaminen tallentamisen yhteydessä käy mukavasti seuraavia aliohjelmia apuna käyttäen. Tosin ne on vain suunniteltu tilaan jossa käytät 16 väriä eli värit 0-15. Aliohjelmilla voit pakata kaksi väriä yhdeksi numeroksi väliltä 0-255 ja purkaa ne takaisin alkuperäisiksi. Toivottavasti tuosta esimerkistä ottaa selvää.
PRINT "JOS Vari1 = 10": Vari1 = 10 PRINT "JOS Vari2 = 15": Vari2 = 15 PRINT "" PRINT "Varien arvo pakattuna ="; STR$(ColorPack(Vari1, Vari2)) PRINT "" PRINT "JOS Varien pakutta arvo on = 150": PakattuArvo = 150 PRINT "Vari1 =" + STR$(ColorUnPackOne(PakattuArvo)) PRINT "Vari2 =" + STR$(ColorUnPackTwo(PakattuArvo)) PRINT ""
Function ColorPack (ColorPackOne As Integer, ColorPackTwo As Integer) As Integer If ColorPackOne <= 15 And ColorPackOne >= 0 And ColorPackTwo <= 15 And ColorPackTwo >= 0 Then ColorPack = ColorPackOne * 16 + ColorPackTwo End If End Function
Function ColorUnPackOne (ColorPackCode As Integer) As Integer If ColorPackCode <= 255 And ColorPackCode >= 0 Then ColorUnPackOne = Int(ColorPackCode / 16) End If End Function
Function ColorUnPackTwo (ColorPackCode As Integer) As Integer If ColorPackCode <= 255 And ColorPackCode >= 0 Then ColorUnPackTwo = ColorPackCode - (Int(ColorPackCode / 16) * 16) End If End Function
Huh. Pakattu = (Vari1 and 15) * 16 or (Vari2 and 15)
ja purku: Vari1 = (Pakattu \ 16) and 15: Vari2 = Pakattu and 15
aliohjelma on turhaa kuormaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.