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

 
 
Herramientas Buscar en Tema Desplegado
  #17  
Antiguo 06-04-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
Cada pixel esta compuesto por 3 bytes (depende del formato) uno para el rojo, otro para el verde y otro para el azul. Una solucion rapida pero poco elegante para tu codigo seria algo como esto:

Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
  x,y : Integer;
  BitMap1, BitMap2 : TBitMap;
  A, B : PByteArray;
begin
  BitMap1 := TBitMap.create;
  BitMap2 := TBitMap.create;
  try
    BitMap1.LoadFromFile('000.bmp');
    BitMap2.LoadFromFile('111.bmp');
    BitMap1.PixelFormat:= pf24bit; // Nos aseguramos de que son 3 bytes por pixel
    BitMap2.PixelFormat:= pf24bit;
    for y := 0 to BitMap1.Height - 1 do
    begin
        A := BitMap1.ScanLine[y];
        B := BitMap2.ScanLine[y];

        for x := 0 to (BitMap1.Width*3) - 1 do // Aqui estaba el problema
        begin
            if A[x] <> B[x] then
              B[x] := 0;
        end;
    end;

    Image3.Picture.Graphic := BitMap2;
  finally
    BitMap1.Free;
    BitMap2.Free;
  end;
end;

La solucion que yo prefiero, es dejarse de arrays de bytes y usar punteros pero aqui cada uno como se sienta mas comodo.
Responder Con Cita
 


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
Restar fechas majosf Conexión con bases de datos 11 16-11-2005 16:27:18
Restar fechas Acker Varios 4 07-11-2005 14:11:51
Puedo Restar en SQL ? K4RL0S SQL 2 25-12-2003 20:54:56
Restar 2 horas... CFPA86 Varios 1 17-10-2003 20:30:54
restar una cadena migueilichenco Varios 19 05-09-2003 23:15:23


La franja horaria es GMT +2. Ahora son las 10:23:08.


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