FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Un pixel en Timage
Hola.
Estoy intentando obtener el código de color de un pixel en una imagen cargada con Timage. La idea que tengo es guardar x pixeles por cada imagen para saber si se ha suplantado la imagen y tambier para buscar repeticiones en una carpeta. He visto que el pixel se lee así: var i: Tcolor; i:= Image1.Picture.Bitmap.Canvas.Pixels[10,10]; ¿ pero como se maneja Tcolor ? Los pos que he encontrado no me han aclarado mucho. Gracias. Última edición por Cecilio fecha: 16-02-2009 a las 14:31:43. |
#2
|
||||
|
||||
TColor esta definido como numeros enteros de 4 bytes.
Por lo que puedes usarlo como cualquier valor entero, asignarle valores en ese rango, comparar, etc. Supongamos que tienes una imagen en cada TImage, puedes hacer:
__________________
[Crandel] |
#3
|
|||
|
|||
Muchas gracias por la aclaración.
Pensaba que podría llevar los componentes separados rgb, brillo y otros datos. El rgb va compatado, y poco más. |
#4
|
||||
|
||||
La otra opción es emplear el método Scanline(). Con éste método se consigue un acceso más rápido que con Pixels[]. El problema es que requiere un poquito más de código.
Cuando llamas a ScanLine() debes indicar la "fila" sobre la cual deseas evaluar. Luego, debes posicionarte sobre la "columna" de dicha fila. ScanLine() regresa la dirección de memoria donde comienza la j-ésima fila, por lo que se necesita un puntero para almacenar el valor, luego es posible moverse de a 3 posiciones y de este modo conseguir ir pixel a pixel. Básicamente lo que se hace es posicionarse en el pixel [i,j] en dos pasos: 1. Ir a la fila j-ésima. 2. Interar i veces, 3 lugares sobre la fila j-ésima. Lo bueno de este método es que se consigue leer los valores RGB de un pixel, y te evitas tener que estar realizando conversión de TColor a RGB. Si buscas sobre ScanLine encontrarás hilos con ejemplos de uso. OJO: esto aplica a bitmaps. Saludos, |
#5
|
|||
|
|||
Delphius Muy interesante, no lo sabía, lo usaré en otras ocasiones.
Para este caso usaré los pixel ya que no van aser más de 5 repartidos por la imagen. pero se agradece la idea. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Dibujar Elipse y Parábola pixel a pixel | Deiv | Gráficos | 9 | 28-11-2016 10:19:41 |
Pintanto Pixel por Pixel - "para entendidos" | MaMu | Gráficos | 1 | 09-01-2009 00:19:01 |
pasar imagen pixel a pixel | gulder | Gráficos | 7 | 26-06-2005 02:10:45 |
Obtener posicion X,Y de un pixel en un TImage | diegofhernando | Varios | 3 | 17-12-2003 15:03:23 |
¿ Cual es la mejor forma de implementar una Pizarra con Sockets? pixel a pixel ? | sase | Internet | 1 | 22-10-2003 16:23:50 |
|