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 06-12-2005
Avatar de adebonis
adebonis adebonis is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 145
Poder: 22
adebonis Va por buen camino
Averiguar los colores de un gráfico.

Hola.

Tengo la necesidad de averiguar el color de los puntos de un gráfico (.bmp ó .jpg) para poder utilizarlo en la propiedad Color de un componente.

¿Alguien sabe cómo se obtienen a partir del gráfico?.

Gracias y Saludos.
Adolfo Bonis Mora
Barcelona
Responder Con Cita
  #2  
Antiguo 06-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.108
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No sé si te refieres a algo así:

Código Delphi [-]
var
  color: TColor;
begin
  color := Image1.Picture.Bitmap.Canvas.Pixels[1, 1];
  {...}
end;
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 06-12-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola amigo DEC hice la prueba del codigo que pusiste asignandole el color a un panel en el evento onMouseDown de mi imagen. Al hacer click me desaparece la imagen y me asigna el color negro a mi panel, me podrias explicar porque ocurre eso porfa.

Código Delphi [-]
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
var
  color: TColor;
begin
  color := Image1.Picture.Bitmap.Canvas.Pixels[X, Y];
  panel1.Color:=color;
end;

gracias por adelantado
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 07-12-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.108
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Por el momento no puedo decirte sino que utilizando el código que has propuesto este me funciona tal como se espera... ¿No te aparece algún error? Yo lo probé con una imagen en formato "BMP",... ¿tal vez lo probaste con algún otro formato de imagen y entonces "la cosa" se comporta de distinto modo? Ya digo que, por el momento, no se me ocurre otra cosa que decirte...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 07-12-2005
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola DEC gracias por reponder, el formato que utilice para mi imagen es jpg y no me da ningun error, en este momento hice la prueba con bmp y funciona todo bien, pero por que sera que con jpg no funciona.
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #6  
Antiguo 12-12-2005
Athanatos Athanatos is offline
Miembro
 
Registrado: ago 2005
Posts: 33
Poder: 0
Athanatos Va por buen camino
Cita:
Empezado por Caro
Hola DEC gracias por reponder, el formato que utilice para mi imagen es jpg y no me da ningun error, en este momento hice la prueba con bmp y funciona todo bien, pero por que sera que con jpg no funciona.
En realidad si quieres trabajar con una imagen la forma adecuada es primero leer el jpg, pasarlo a un bmp con assign y recien leer o escribir los pixeles. Asi tienes en memoria una zona para trabajar tu grafico. Mejor si el bmp es del tipo dib (bitmap independiente del dispositivo, es decir de la resolucion actual en color de la pantalla que puede ser 8,16,24 o generalmente 32 bits.)

Para guardar el bmp lo pasas de nuevo a un objeto Tjpegimage.

No puedes trabajar directamente con el jpeg por que, por lo menos en la version que tengo, no tiene un bitmap propio, por lo menos no un bitmap editable y supongo que esto es para ahorrar memoria a costa de velocidad. Asi que cada vez que se repinta tiene que decodificar nuevamente el jpeg para mostrar la parte que falta en pantalla.
Responder Con Cita
  #7  
Antiguo 12-12-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por Athanatos
Para guardar el bmp lo pasas de nuevo a un objeto Tjpegimage.
Solamente recordar que cada vez que se aplica el algoritmo jpeg a una imagen, se pierde detalle, por lo que si esta operación se realiza muchas veces, terminarás teniendo una imagen "deteriorada" digitalmente.

Saludos.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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 17:23:32.


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