FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
ColorToRGB para un TColor de 16 bits.
Hola.
Estoy modificando el color de una imagen y para ello saco pixel a pixel el color que tiene lo modifico y lo vuelvo a poner. Cuando lo tengo puesto en 32 bits va a la perfección, me devuelve una variables de 24 bit y saco los tres componentes R G B de cada pixel usando 8 bits para cada uno, pero cuando estoy en 16 bits de color lo que me devuelve son 16 bits y si intento sacarle los colores RGB me da valores para R y G más altos de lo que debe y 0 para B (cosa lógica ya que tengo solo 16 bits y estoy sacando 8, 8 y 8) ¿Alguien sabe como puedo convertir un TColor de 16 bits a 24 bits para poder sacarle el R,G,B ? El código es el siguiente (GetPixel16 cuando BitCount = 16 y GetPixel32 cuando BitCount = 32)
también he probado con:
Pero me pasa lo miso, devuelve solo 16 bits. El código de GetPixel es:
Haciendo pruebas obtengo estos valores: 32 bits de color: ColorPixel = 9005609 --> 896A29 R = 41 --> 29 G = 106 --> 6A B = 137 --> 89 y el mismo pixel pero con la configuración de windows a 16 bits ColorPixel = 35653 --> 8B45 R = 69 G = 139 B = 0 Saludos. Última edición por kotai fecha: 09-03-2007 a las 18:34:41. |
#2
|
||||
|
||||
En el formato de 16bits, la informacion del color se codifica con 5 bits para el rojo y el azul, y 6 para el verde. Para pasar de 24 a 16 bits se eliminan los 3 bits menos significativos de cada canal (o 2 en el caso del Verde).
La funcion siguiente convierte de 24 a 16 bits:
Para hacer el paso inverso solo tenemos que insertar ceros en las posiciones de los bits que faltan. La siguiente funcion convierte de 16 a 24 bits: Ten en cuenta que como en el paso de convertir de 24 a 16 perdemos información, el paso inverso, de 16 a 24, nos devolverá un valor muy aproximado al original, pero no exactamente el mismo valor. |
#3
|
||||
|
||||
Genial, va perfecto.
Muchas gracias. Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
convertir un string a tColor | Manuel | Varios | 2 | 19-08-2006 19:58:24 |
Operadores para manejo de bits | vasgab | Varios | 2 | 26-04-2006 17:40:04 |
Delphi 7 y S.O de 64 Bits | senpiterno | Varios | 3 | 29-11-2004 23:22:36 |
¿Cómo guardar el Valor de TColor como un String? | nesetru | Gráficos | 3 | 27-02-2004 20:21:32 |
Proyecto Vulcano : Firebird para 64 bits | guillotmarc | Noticias | 0 | 18-12-2003 14:52:56 |
|