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 12-04-2006
7pilas 7pilas is offline
Registrado
 
Registrado: abr 2006
Posts: 7
Poder: 0
7pilas Va por buen camino
problema con edicion de imagenes

un saludo, me gustaria saver si alguien me puede ayudar a crear un filtro para hacer que un tipo tabulador el cual controle la intensidad de brillo en determinada fotografia, por esto me refiero a por ejemplo si la foto en las orillas esta muy oscura hacerla mas clara etc etc,espero me puedan ayudar nos vemos
Responder Con Cita
  #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: 24
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
  #3  
Antiguo 14-04-2006
7pilas 7pilas is offline
Registrado
 
Registrado: abr 2006
Posts: 7
Poder: 0
7pilas Va por buen camino
otra vez con lo de la edicion de imagenes

grasias por contestar, como me desian no especifique bien como cargaba la imagen..... es un jpg cargado desde un TImage , con respecto a lo del tablulador.... me referia a algo para controlar el nivel de brillo en la imagen... por ejemplo poder ponerle un 10% o un 50% etc .....para poder aplicarselo a una fotografia para aplicarle el filtro de brillo
Responder Con Cita
  #4  
Antiguo 15-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: 24
seoane Va por buen camino
Bien, el unico problema al ser una imagen jpeg y estar cargada en un TImage es que antes de poder utilizarla la tenemos que convertir a bmp y a partir de hay el proceso para cambiar el brillo es el mismo de antes.

Aqui te dejo un ejemplo haber si te sirve. En el explico como hacerlo de 2 formas diferentes, para usarlo solo tienes que cargar una imagen (JPEG o BMP) en el TImage de la izquierda antes de ejecutarlo y el hara el resto.
Archivos Adjuntos
Tipo de Archivo: zip Ejemplo 06.zip (4,5 KB, 47 visitas)
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

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 09:42:47.


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