Club Delphi  
    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 01-06-2007
kapullok_2006 kapullok_2006 is offline
Miembro
 
Registrado: mar 2007
Posts: 90
Poder: 18
kapullok_2006 Va por buen camino
Question no me ha visualiza las imagenes

hola tengo lo siguiente:
Código Delphi [-]
//------------------------------------------------------------------------------
procedure JPGToBMP(f_jpg,f_bmp: string); forward;
procedure BMPToJPG(f_bmp,f_jpg:string); forward;
procedure CambiarTamanoBMP(f_entrada,f_salida: string; ancho: integer); forward;
//------------------------------------------------------------------------------
procedure JPGToBMP(f_jpg,f_bmp: string);
var jp: TJPEGImage;
    b:  TBitMap;
begin
     jp:= TJPEGImage.Create;
     b:= TBitMap.Create;
     jp.LoadFromFile(f_jpg);
     b.Assign(jp);
     b.SaveToFile(f_bmp);
     jp.Free;
     b.Free;
end;
//------------------------------------------------------------------------------
procedure BMPToJPG(f_bmp,f_jpg:string);
var b:TBitMap;
    jp:TJPEGImage;
begin
    b:=TBitMap.Create;
    jp:=TJPEGImage.Create;
    b.LoadFromFile(f_bmp);
    jp.Assign(b);
    jp.SaveToFile(f_jpg);
    b.Free;
    jp.Free;
end;
//------------------------------------------------------------------------------
procedure CambiarTamanoBMP(f_entrada,f_salida: string; ancho: integer);
var b_e,b_s: TBitMap;
    r: TRect;
begin
     b_e:= TBitMap.Create;
     b_s:= TBitMap.Create;
     b_e.LoadFromFile(f_entrada);
     b_s.PixelFormat:= pf24bit;
     b_s.Width:= ancho;
     b_s.Height:= (ancho*b_e.Height) div b_e.Width;
     r.Left:= 0; r.Right:= b_s.Width;
     r.Top:= 0; r.Bottom:= b_s.Height;
     b_s.Canvas.StretchDraw(r,b_e);
     b_e.Free;
     b_s.Free;
end;
//-----------------------------------------------------------------------
procedure TForm2.Blanco_NegroClick(Sender: TObject); //Botón
begin
   Screen.Cursor := crHourGlass;
   Form2.ImageZoom1.Visible:=false;
   Form2.Image1.Visible:=false;
   if Form1.Memo1.Lines.Strings[i+offset] = '*.jpg' then
   begin
   //JPGToBMP('*.jpg',Form1.Memo1.Lines.Strings[i+offset]);
   JPGToBMP('*.jpg','G:\carpeta2\*.bmp');
   CambiarTamanoBMP('G:\carpeta2\*.bmp','G:\carpeta3\*.bmp',20);
   lista_archivos.Strings[i+offset]:='G:\carpeta3\*.bmp';
   end;
   
//   Form2.ImageEfecto1.Picture.LoadFromFile(Form1.Memo1.Lines.Strings[i+offset]);
   Form2.ImageEfecto1.Picture.LoadFromFile(lista_archivos.Strings[i+offset]);
   Form2.ImageEfecto1.Effect_GrayScale;
   Screen.Cursor := crDefault;
end;
Mi aplicacion me muestra en un Memo, la ruta de las imagenes,pero cuando quiero aplicarle blanco_negro a la foto desaparece ésta del componente imagen como tiene que ser y no aprece cambiada en ImageEfecto1, que es un componente 'ProEffectImage',que me recomendaron en estos foros.
Saludos,perdonad si me quereis explicar algo.
Responder Con Cita
  #2  
Antiguo 15-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Cool Yo lo haría asi:

Me parece que lo que estas haciendo básicamente es un pequeño thumbnail en blanco y negro de un listado de archivos jpeg. Me parece que el problemilla se debe a que no refresca la imagen... no estoy seguro pues no quiero ver el componente, sin embargo puedo suponer que haciendo un "Refresh" al objeto ImageEfecto1 luego de ponerle a escala de grises podria funcionar, pero no hago más que divagar pues no probe tal componente.
Con el tiempo me di cuenta que no siempre es mejor usar componentes, así que te hice un pequeño código que te será muy util:

Código Delphi [-]
uses jpeg;

function jpgToGrayThumbnail(const FileName: string; Width: Integer): TBitmap;
var
 jpg: TJPEGImage;
 Color: PCardinal;
 Count, y, x, Gray: Cardinal;
begin
 jpg := TJPEGImage.Create;
 jpg.LoadFromFile(FileName);
 Result := TBitmap.Create;
 Result.Width := Width;
 with Result do
  begin
   Height := (Width * jpg.Height) div jpg.Width;
   PixelFormat := pf32Bit;
   Canvas.StretchDraw(Rect(0, 0, Width - 1, Height - 1), jpg);
   Count := Abs(Cardinal(ScanLine[1]) - Cardinal(ScanLine[0])) div 4;
   y := Height;
   repeat Dec(y);
    Color := ScanLine[y];
    x := Count;
    repeat Dec(x);
     Gray := (GetRValue(Color^) + GetGValue(Color^) + GetBValue(Color^)) div 3;
     Color^ := RGB(Gray, Gray, Gray);
     Inc(Color);
    until x = 0;
   until y = 0;
//   SaveToFile('cache.bmp'); // Opcional 
  end;
 jpg.Free;
end;

Podras apreciar que resulta mucho mas óptimo el código que te dejo... ahhh su modo de empleo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 Image1.Picture.Assign(jpgToGrayThumbnail('e:\Mis imágenes\0002.jpg', 80));
end;

claro que lo puedes usar de N formas...
Espero no sea tarde y te sea util. Suerte!

Última edición por cHackAll fecha: 15-06-2007 a las 01:01:53.
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
No se visualiza los cambios..... inexperto Conexión con bases de datos 3 27-11-2004 21:11:09
No visualiza forms pero si arranca Navegador y Listner Combat-F2D Oracle 5 01-05-2004 02:24:57
Uso de imagenes deimonio Varios 1 13-10-2003 09:15:05
Imagenes *.sid Gabriel Gráficos 0 09-09-2003 12:25:49
porque no se visualiza bien morfeo21 Varios 5 24-05-2003 20:57:07


La franja horaria es GMT +2. Ahora son las 00:06:58.


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