2012-06-01 49 views
17

Estoy tratando de calcular un RGB colors(0 - 255) para un 0 a 1 scale. ¿Alguien sabe un convertidor en línea o existe una fórmula matemática?rgb valores a 0 a 1 escala

Digamos que quiero convertir 125 RGB con (escala de 0 a 255) a una escala de 0 a 1.

+10

¿Quizás divide por 255? – MikkoP

+0

Excelente @ el.severo –

Respuesta

36

Se trata simplemente de un caso de dividir el valor RGB, llamarlo por x 255:

Si x = 95 entonces su valor es 95/255 = 0.373 (a 3 dp)

6
a = x/255 

o

x = a * 255 

donde x es el valor RGB y a es su resultado deseado.

1

si desea continuar usando 0-255 puede crea una función para esto como en el siguiente ejemplo.

function setFillColor2(...) 
    local object,r,b,g=... 
    object:setFillColor(r/255, b/255,g/255) 
end 

circle1 = display.newCircle(150,250, 50) 
setFillColor2(circle1,23,255,12) 
0

La forma más sencilla si bien dividir por 255 para 0-1 ó 256 0 - un poco menos de 1. Esto último a veces tiene sus ventajas. Necesitas hacer las divisiones en punto fijo o flotante, no en aritmética de enteros, por supuesto.

Sin embargo, de hecho, la respuesta humana a un valor de canal rgb en 0-255 no es lineal, tampoco lo es la respuesta del dispositivo. A menudo necesitas hacer una corrección gamma. Todo se involucra muy rápidamente, y generalmente no importa mucho para los gráficos de gama baja. Sin embargo, para los gráficos de gama alta, a menudo se quiere estar fuera del espacio de color rgb, y luego se necesitan funciones de conversión no lineales para finalmente eliminar los píxeles rgb de la imagen final.

Cuestiones relacionadas