Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-10-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 26
seoane Va por buen camino
Bien, en tu código el problema es el siguiente (marcado en rojo), al hacer referencia a un pixel que no existe devuelve el color blanco por defecto, por eso te aparecía el color blanco aun cuando la imagen no lo contenía:

Código Delphi [-]
for Y := (image1.Width - image1.Width) to image1.Width -1 do
begin
  for X := (image1.Height - image1.Height) to image1.Height -1 do
  begin

Por otro lado, retoque un poco el código:
Código Delphi [-]
var
  i,j: integer;
  Histograma: array[0..255] of Integer;
  Max: Integer;
begin
  FillChar(Histograma,Sizeof(Histograma),0);
  for i:= 0 to Image1.Picture.Bitmap.Width - 1 do
    for j:= 0 to Image1.Picture.Bitmap.Height - 1 do
      inc(Histograma[Image1.Canvas.Pixels[i,j] and $FF]);

  Max:= 0;
  for i:= 1 to 255 do
    if Histograma[i] > Histograma[Max] then
      Max:= i;

  j:= Image1.Picture.Bitmap.Width * Image1.Picture.Bitmap.Height;
  Image2.Canvas.FillRect(Image2.Canvas.ClipRect);
  for i:= 0 to 255 do
  begin
    Image2.Canvas.MoveTo(i,0);
    Image2.Canvas.LineTo(i,(Image2.Height * Histograma[i]) div Histograma[Max]);
  end;
end;

Pero esto ultimo ya es cuestión de gustos. De todas formas para este tipo de operaciones usar la propiedad Pixels del canvas es poco eficiente. Echale un vistazo a la propiedad Scanline del bitmap, mucho mas apropiada para estos casos.

PD: Usa la etiquetas [delphi][/delphi] para incluir código, de esta manera se podrá leer mucho mejor.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como hago un pixel transparente jorge1987 Gráficos 7 26-09-2006 20:19:28
pasar imagen pixel a pixel gulder Gráficos 7 26-06-2005 02:10:45
Como asignarle atributos a un pixel? bustio .NET 0 03-12-2004 20:42:00
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


La franja horaria es GMT +2. Ahora son las 19:41:05.


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