Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 12-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
No aclaras si la fotografia es un bmp, un jpeg, si esta en un archivo o cargada en un TImage. Asi que voy a suponer que esta en un archivo bmp. Ademas no entiendo muy bien eso del marco, el codigo que te pongo a continuacion aumenta el brillo de toda la imagen, no de solo una parte.

Código Delphi [-]
type
  Triple = array[1..3]of Byte;

// Realiza la operacion (b * x) / 128
function Multiplicar(b: Byte; x: Integer): byte;
begin
  x:= (x * b) shr 7;
  if x > 255 then Result:= 255
    else Result:= x;
end;

procedure Filtro(Origen, Destino: string; Brillo: Integer);
var
  Bitmap: Tbitmap;
  P: ^Triple;
  i,j: Integer;
begin
  Bitmap:= TBitmap.Create;
  try
    try
      Bitmap.LoadFromFile(Origen);
      Bitmap.PixelFormat:= pf24bit; // 3 bytes por pixel (Azul, Verde y Rojo)
      for j:= 0 to Bitmap.Height - 1 do
      begin
        P:= Bitmap.ScanLine[j];
        for i:= 0 to Bitmap.Width - 1 do
        begin
          P^[1]:= Multiplicar(P^[1],Brillo);
          P^[2]:= Multiplicar(P^[2],Brillo);
          P^[3]:= Multiplicar(P^[3],Brillo);
          inc(P);
        end;
      end;
      Bitmap.SaveToFile(Destino);
    except
      ShowMessage('No puedo realizar la tarea');
    end;
  finally
    Bitmap.Free;
  end;
end;

Para usar la funcion hay que pasarle como parametros, el archivo de origen, el de destino y el brillo. El brillo tiene la siguientes equivalencias: 0=0%, 128=100%, 256=200%, etc ...

Por ejemplo, asi aumentariamos el brillo en un 50%
Código Delphi [-]
Filtro('d:\1.bmp','d:\2.bmp',192);

Espero que te sirva

Última edición por seoane fecha: 12-04-2006 a las 11:13:44.
Responder Con Cita
 



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
Problema con imagenes JPG turekon Gráficos 0 12-12-2005 22:29:53
problema de edicion en una Form thrys Conexión con bases de datos 1 08-09-2005 01:52:28
Problema con Edicion En Master-Detail Paradiso Conexión con bases de datos 0 26-01-2005 06:28:28
Problema de imagenes MRSAM Gráficos 7 15-07-2004 21:15:26
Como puedo cambiar la propiedad de edicion y no edicion a un StringGrid1 ctronx Varios 2 25-06-2004 23:10:19


La franja horaria es GMT +2. Ahora son las 01:23:35.


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