Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 21
Jan_polero Va por buen camino
Alterar los colores de un TImage

Hola a todos.
Cómo se podría hacer que una imagen se fuera iluminando intermitentemente?,es decir, algo parecido al fade out pero al contrario.Y que la imagen volviese a quedar como al principio.
No sé si me he explicado.
Responder Con Cita
  #2  
Antiguo 17-12-2004
<Sergio> <Sergio> is offline
Miembro
 
Registrado: sep 2004
Posts: 72
Poder: 20
<Sergio> Va por buen camino
Usas un Tbitmap, usas el scanline para tener una referencia a la línea de la imagen que trataras. NO USES EL PIXELS[x,y] De acuerdo al formato de pixeles (mejor si es 16 bits o 24 bits que es más cómodo) aplicas suma saturada con 3 tablitas para reescalar los colores de cada canal rgb. La tabla la precalculas previamente asi ganas mucha velocidad. Luego pintas en pantalla tu Tbitmap mejor con un bitblt().
Responder Con Cita
  #3  
Antiguo 21-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 21
Jan_polero Va por buen camino
Gracias por contestar,pero si supiera utilizar scanline y aplicar suma saturada con 3 tablitas para reescalar los colores no lo preguntaría.Necesito un poco más de información menos "técnica",o usar algún ejemplo.Gracias.
Responder Con Cita
  #4  
Antiguo 22-12-2004
<Sergio> <Sergio> is offline
Miembro
 
Registrado: sep 2004
Posts: 72
Poder: 20
<Sergio> Va por buen camino
No es tan difícil como parece.

1. el scanline: busca en la ayuda como acceder a el, buscando en Tbitmap.

2. para usar el scanline define un tipo de dato: Tlinea: un arreglo de pixeles del mismo formato que vayas usar, por ejemplo 24 bits sería un simple arreglo de bytes.

3. define un Plinea=^Tlinea;

4. define una variable del tipo Plinea

5. asigna a Plinea el scanline de la línea con que vas a trabajar

6. utiliza tu variable como un simple arreglo estático, OJO mucho control con tu ciclo for para que no se salga de los límites de ancho de la imagen va de 0 a (ancho*3)-1 para 24bits, igual con la línea para el scanline de 0 a alto-1.

7.- Suma saturada: es lo más fácil: la tabla la llenas con valores de 0 a 510 que es lo máximo que da 255+255, con un if truncas si es mayor a 255 a 255 y punto final.
Responder Con Cita
  #5  
Antiguo 23-12-2004
Jan_polero Jan_polero is offline
Miembro
 
Registrado: may 2004
Posts: 62
Poder: 21
Jan_polero Va por buen camino
Ok,muchas gracias.Ahora ya entiendo mejor lo que debo hacer :-).Un saludo.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 12:10:42.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi