Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 20
kurono Va por buen camino
amigo chackall puedes mostrarme un ejemplo de ese barrido xy
Responder Con Cita
  #2  
Antiguo 28-04-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Un barrido podría ser visto como ésto;

Código Delphi [-]
...

 y := bmp.Height;
 repeat Dec(y);                       // barrido vertical
  x := bmp.Width;
  repeat Dec(x);                      // barrido horizontal
   Color := bmp.Canvas.Pixels[X, Y];
   if GetRValue(Color) > 10 then
    bmp.Canvas.Pixels[X, Y] := RGB(GetRValue(Color) - 10, GetGValue(Color), GetBValue(Color));
  until not LongBool(x);
 until not LongBool(y);

...
ó con el uso de un while o un for (simplemente un bucle dentro de otro), sin embargo se puede hacer un barrido de toda la imagen directamente en memoria, lo que mejoraría conciderablemente la velocidad de acceso y el trabajo plano en un vector (a diferencia de en una matriz XY como la del anterior ejemplo).

Código Delphi [-]
uses jpeg;

procedure TForm1.Button1Click(Sender: TObject);
var
 jpg: TJPEGImage;
 bmp: TBitmap;
 Count: Cardinal;
 lpBuffer: PByte;
begin
 jpg := TJPEGImage.Create;
 jpg.LoadFromFile('c:\windows\web\wallpaper\autumn.jpg');
 bmp := TBitmap.Create;
 bmp.Assign(jpg);
 bmp.PixelFormat := pf24bit;
 Count := bmp.Width * bmp.Height;
 lpBuffer := PByte(Cardinal(bmp.ScanLine[bmp.Height - 1]) + 2);
 while LongBool(Count) do // Barrido
  begin
   if lpBuffer^ > 64 then //  Si el tono excede el mínimo
    Dec(lpBuffer^, 64);   // reducimos dicho valor.
//    lpBuffer^ := 255{Ej. enrojecido total};
   Inc(lpBuffer, 3);
   Dec(Count);
  end;
 Image2.Picture.Assign(bmp);
 Image1.Picture.Assign(jpg);
 bmp.Destroy;
 jpg.Destroy;
end;

Saludos

Última edición por cHackAll fecha: 28-04-2008 a las 18:39:48. Razón: REM
Responder Con Cita
  #3  
Antiguo 28-04-2008
Avatar de kurono
[kurono] kurono is offline
Miembro Premium
 
Registrado: jul 2007
Ubicación: Republica Dominicana
Posts: 1.144
Poder: 20
kurono Va por buen camino
ok gracia amigo hack funciona perfectamente pero si no es mucha molestia me gustaria tambien poner la imagen blanco y negro como se haria que debo cambiar en el codigo para hacerlo

Última edición por kurono fecha: 28-04-2008 a las 20:16:03.
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 Cambiar El Color De Fondo En Una Imagen kurono Varios 2 27-11-2011 13:53:41
Cambiar el color de una imagen inter_mercadeo Gráficos 2 25-02-2005 18:36:54
Botón con Imagen y color. kukinn Varios 10 13-01-2005 14:32:30
¿Como quitar una imagen que esta encima de otra? astur_racing Gráficos 3 01-09-2004 20:47:15
imprimer en color rojo con el canvas click Impresión 4 03-11-2003 15:17:51


La franja horaria es GMT +2. Ahora son las 20:48:20.


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