FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Como Obtener RGB de unos pixeles...
Hola amigos del foro, nuevamente acudo a uds. para ver si existe un componente o si es mas sencillo de lo que me parece realizar esto con los componentes estándares de Delphi:
Dada una imagen ('C:\MyImage.jpg'), 1) Cargarla en un TImage (u otro componente nose) 2) Al pasar el mouse sobre la imagen, pintar la zona donde pasa 3) Antes de pintar obtener la escala de colores RGB de dicha selección En realidad la parte importante es obtener los colores de la selección, pero no de un solo pixel sino de varios, o sea un promedio de varios pixeles al estilo cuentagotas del photoshop u otro editor de imagenes. Antes de postear he buscado en post anteriores y no he logrado encontrar algo así. Bueno espero encontrar solución a esto y desde ya eternamente agradecido como siempre!!! Saludos, Walter |
#2
|
|||
|
|||
para volver a componer el color seria
|
#3
|
|||
|
|||
Bien, pero...
Hola coso, muchas gracias por tu rta, el tema es como obtengo el pixel, o sea estoy un poco máas que perdido.
Por si no fui del todo claro, describo nuevamente el enfoque la cosa es pintar una parte de la imagen, pero antes de pintar obtener un promedio de RGB de la parte pintada, nose si se entiende Igualmente muchas gracias y seguiré investigando un poco mas Saludos, Walter |
#4
|
|||
|
|||
Para obtener un pixel debes mirar en el objeto canvas, por ejemplo :
color := PaintBox1.Canvas.Pixels[x,y] o si es una imagen Image1.Picture.Bitmap.Canvas.Pixels[x,y] para hacer el promedio que decias, por ejemplo pasando a grises, seria algo como
echale un vistazo a la ayuda de delphi, buscando 'canvas' |
#5
|
||||
|
||||
Hola waly2k1,
Además Pixels[], cuentas con ScanLine() que permite leer "linea por línea" una imagen. ScanLine es mucho más rápido que el Pixels[]. Cuanto más grande sea la imagen, más se lento se hará, si bien es imperceptible a nuestros ojos. Si estás pensando en tener un cuenta gotas y quieres hacer cálculos con los valores RGB lo mejor es contar con ScanLine; sobre todo si se debe examinar pixeles vecinos. Veamos como te explico. Una imagen es una matriz, tiene un largo y un ancho. Código:
+---------+---------+ ... |255255255|255255255| ... +---------+---------+ ... |255255255|255255255| ... +---------+---------+ ... Código:
+---------+ |255255255| +---------+ Si leemos con ScanLine(), obtenemos esto: Código:
+-----------+-----------+ ... |255|255|255|255|255|255| ... +-----------+-----------+ ... Lo que se obtiene con ScanLine es un puntero al primer pixel. Si queremos ir a un pixel n-ésimo en la fila habrá que incrementar el valor de dicho puntero n veces de a 3. Es decir: n * 3. ¿Por qué ese 3? Ese 3 corresponde a la cantidad de canales: rojo, verde, azul. Cuando nos posicionamos en el lugar adecuado, tenemos entonces en el puntero ya lo valores: Siendo RGB un "vector puntero" de 3 posiciones. Si buscas sobre ScanLine() vas a encontrar ejemplos de como usarlo. Saludos, |
#6
|
|||
|
|||
Muy bien muchachos
A decir verdad me sirve muchísimo la ayuda brindada. Me surgió un imprevisto y deberé postergar esto un poco, pero ya en cualquier momento lo reanudo, pruebo y les comento como fue todo. Me sorprende sus conocimientos del tema, porque si bien las herramientas 'están', hay que saber utilizarlas.
Nuevamente gracias coso y Delphius por todo el tiempo que me dedicaron. Estamos en contacto por el tema en cualquier momento. Sigan así que siempre gente como yo les estará muy agradecida! Saludos, Walter |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Como puedo medir la distancia de dos puntos (pixeles) ? | JuanErasmo | Gráficos | 1 | 14-12-2007 00:54:35 |
Obtener unos datos de una bbdd | pennylane | SQL | 6 | 08-02-2007 13:32:02 |
Como enviar unos edit.text a un reporte de Rave | Bairon Kumon | Impresión | 0 | 07-06-2006 22:56:30 |
Como manipular los pixeles la matriz de valores en una imagen en escala de grises | erocha | Gráficos | 4 | 30-11-2003 06:20:32 |
obtener filas que contienen unos datos y no contienen otros datos | Angel | Firebird e Interbase | 14 | 10-06-2003 10:11:23 |
|