Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    colore RGB e colore + scuro RGB


    Ho 1 colore che varia ad ogni refresh della pagina

    come faccio ad ottenere il suo corrispondente + scuro?

    tipo
    #cfe7e7 = colore della cella

    #AAD5D5 = corrispondente + scuro

  2. #2
    Il corrispondete più scuro avrà un valore standard di incremento, tipo se il colore è X il suo colore più scuro è X - 50
    Puoi scomporre il numero del colore X e portarlo da esadicmale a decimale, dopodiché aggiungi la variabile di incremento colore (nel nostro caso 50) e alla fine riconverti il valore decimale in esadecimale.

    E' questo quello che cercavi???
    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  3. #3
    Federix
    Uhmmm da come hai scritto sembra proprio quello che cerco...forse a monte io sbaglio a creare il colore random perchè faccio una cosa di questo tipo:

    Dim varia, colore
    varia = 999999
    Randomize()
    colore = left(Cdbl((varia - 1)*Rnd() + 10000 ),6)


    per cui non avrò mai un valore tipo #cccccc
    ma solo numerico

    non sapevo come ottenere random una cosa tipo #cccccc oppure #AAD5D5 e mi sono affidato ai numeri, per cui... :master: come applico quello che mi hai detto?
    faccio una cosa tipo

    Dim varia, colore, colore2
    varia = 999999
    Randomize()
    colore = left(Cdbl((varia - 1)*Rnd() + 10000 ),6)

    colore2 = colore + 50

    :master:

  4. #4
    L'unica cosa che mi viene in mente è questa.
    Devi avere tutta la gamma dei colori RGB, quindi 255^3 fa 16581375.
    Dopodiché moltiplichi il valore massimo dei colori per un numero casuale e ne estrai solamente la parte intera, buttando via la parte dopo la virgola.
    Per avere il colore scuro, abbassi i valori RGB di 10000 punti.
    Poi devi fare un controllo perché può succedere che la conversione dell'RGB in esadecimale può tralasciare alcuni parametri e quindi avere un colore distorto (in esadecimale devi avere per forza una combinazione di 6 caratteri alfanumerici).
    Dopodiché visualizzi i colori in una tabella:
    codice:
    <%
    colori = 16581375
    Randomize()
    
    colore_rgb = split(colori*Rnd(),",")
    colore = colore_rgb(0)
    colore_scuro = colore_rgb(0)-10000
    
    select case len(hex(colore))
    case 6
    	colore_hex = "#"+hex(colore)
    	colore_scuro_hex = "#"+hex(colore_scuro)
    case 5
    	colore_hex = "#0"+hex(colore)
    	colore_scuro_hex = "#0"+hex(colore_scuro)
    case 4
    	colore_hex = "#00"+hex(colore)
    	colore_scuro_hex = "#00"+hex(colore_scuro)	
    case 3
    	colore_hex = "#000"+hex(colore)
    	colore_scuro_hex = "#000"+hex(colore_scuro)	
    case 2
    	colore_hex = "#0000"+hex(colore)
    	colore_scuro_hex = "#0000"+hex(colore_scuro)	
    case 1
    	colore_hex = "#00000"+hex(colore)
    	colore_scuro_hex = "#00000"+hex(colore_scuro)	
    case 0
    	colore_hex = "#000000"+hex(colore)
    	colore_scuro_hex = "#000000"+hex(colore_scuro)	
    end select
    %>
    <table width="760" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td height="50"><%=colore%></td>
    <td height="50" bgcolor="<%=colore_hex%>">colore hex chiaro</td>
    </tr>
    <tr>
    <td height="50"><%=colore_scuro_hex%></td>
    <td height="50" bgcolor="<%=colore_scuro_hex%>">colore hex scuro</td>
    </tr>
    </table>
    L'unico problema è che abbassando di 10000 il valore degli RGB, si possono avere dei colori sballati se il valore RGB del colore iniziale è molto basso, quindi devi vedere un pò te come fare.

    Vado a magnare

    FEDERIX.IT - [Pillola] GRAFICA DEI FORM

    ...ho ancora quella forza che ti serve, quando dici "Si comincia!"

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao a tutti,

    io mi sono fatto delle funzioncine per gestire i colori che credo possano esserti utili
    codice:
    <%
    Function rgb2hex(r,g,b)
    	dim strHex
    	strHex = ""
    	strHex = strHex & Right("0" & Hex(r),2)
    	strHex = strHex & Right("0" & Hex(g),2)
    	strHex = strHex & Right("0" & Hex(b),2)
    	strHex = "#" & strHex
    	rgb2hex = strHex
    End Function
    Function Hex2Dec(strHex)
    	dim i,c,d,dec
    	dec=0
    	for i=1 to Len(strHex)
    		c = UCase(Mid(strHex,i,1))
    		if isNumeric(c) then
    			d=CInt(c)
    		else
    			d=Asc(c)-55
    		end if
    		dec=dec+(d*(16^(Len(strHex)-i)))
    	next
    	Hex2Dec = dec
    End Function
    
    Function Hex2R(strHex)
    	dim inizio,hexR
    	inizio=1
    	if Left(strHex,1)="#" then inizio=inizio+1
    	hexR = Mid(strHex&"000000",inizio,2)
    	Hex2R = Hex2Dec(hexR)
    End Function
    Function Hex2G(strHex)
    	dim inizio,hexG
    	inizio=3
    	if Left(strHex,1)="#" then inizio=inizio+1
    	hexG = Mid(strHex&"000000",inizio,2)
    	Hex2G = Hex2Dec(hexG)
    End Function
    Function Hex2B(strHex)
    	dim inizio,hexB
    	inizio=5
    	if Left(strHex,1)="#" then inizio=inizio+1
    	hexB = Mid(strHex&"000000",inizio,2)
    	Hex2B = Hex2Dec(hexB)
    End Function
    
    Function CreaSfumatura(qtaColori,rda,gda,bda,ra,ga,ba)
    	Dim stepX,strColore,xr,xg,xb
    	stepX = (255/(qtaColori))
    	strColore = ""
    	for j=0 to 255 step stepX
    		xr = Round(j/255*ra+(255-j)/255*rda)
    		xg = Round(j/255*ga+(255-j)/255*gda)
    		xb = Round(j/255*ba+(255-j)/255*bda)
    		strColore = strColore & rgb2hex(xr,xg,xb) & ","
    	next
    	if strColore<>"" then strColore=Left(strColore,Len(strColore)-1)
    	CreaSfumatura = Split(strColore,",")
    End Function
    %>
    <HTML>
    <HEAD>
    <title>Sfumature di colori</title>
    </HEAD>
    <BODY>
    <%
    Randomize()
    colore = rgb2hex(Int((256)*Rnd),Int((256)*Rnd),Int((256)*Rnd))
    arr = CreaSfumatura(16,Hex2R(colore),Hex2G(colore),Hex2B(colore),0,0,0)
    %>
    <table><%
    for i=LBound(arr) to UBound(arr)%>
    <tr>
    <td bgcolor="<%=arr(i)%>"><%=arr(i)%></td>
    <td><%=Hex2R(arr(i))%>, <%=Hex2G(arr(i))%>, <%=Hex2B(arr(i))%></td>
    </tr><%
    next%>
    </table>
    </BODY>
    </HTML>

  6. #6
    urkaaaa
    Grazzziee!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.