Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 01-06-2011
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
leer imagenes jpg dentro de una carpeta

hola amigos del foro como estan, estoy realizando un sistema de digitalizacion y requiero leer n imaganes con formato .jpg que se encuentran en una carpeta determinada carpeta en mi formulario delphi, para leer una imagen no tengo problemas, pero lo que requiero es leer todas las imagenes que contenga la carpeta, por favor si alguien ha hecho algo parecido le agradeceria mucho su ayuda.

gracias de antemano...
Responder Con Cita
  #2  
Antiguo 01-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ingmichel.

Para leer los archivos .JPG te podés valer de las funciones FindFirst y FindNext. Como supongo que querrás almacener la ruta y el nombre de cada imágen,
creo que usar un TStrings es lo indicado.

Código Delphi [-]
...
uses JPeg, ExtCtrls;

procedure LeerJPGS(const Ruta: string; Nombres: TStrings);
var
  SR: TSearchRec;
begin
  if FindFirst(Ruta+'\*.JPG',faArchive, SR) = 0 then
  begin
    repeat
      Nombres.Add(Ruta+'\'+SR.Name);
    until FindNext(SR) <> 0;
    FindClose(SR);
  end;
end;

Y para ponerte un ejemplo que sea funcional, uso un TScrollBox donde voy a hubicar las imágenes cuyos nombres están almacenados en la variable
de tipo TStrings.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Nombres: TStrings;
  Img: TImage;
  i: Integer;
begin
  Nombres:= TStringList.Create;
  try
    LeerJPGS('C:\Users\Tu_Nombre_De_Usuario\Pictures',Nombres);
    for i:= 0 to Nombres.Count -1 do
    begin
      Img:= TImage.Create(Self);
      Img.Picture.LoadFromFile(Nombres[i]);
      Img.Height:= 150;
      Img.Width:= 300;
      Img.Top:= i * 150 + 10;
      Img.Stretch:= True;
      Img.Parent:=ScrollBox1;
    end;
  finally
    Nombres.Free;
  end;
end;
Al finalizar, también deberías eliminar los TImage que se han creado.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 01-06-2011
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
muchisimas gracias ecfisa

hola ecfisa muchisimas gracias por tu respuesta, me haz salvado la vida, probe tu codigo y funciono perfecto, solo una inquietud como elimino los timage que se crean con el bucle ?
Responder Con Cita
  #4  
Antiguo 01-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ingmichel.

Una forma podría ser mediante un TObjectList:
Código Delphi [-]
...

uses JPeg, ExtCtrls, Contnrs;

var
  ObjList: TObjectList;

...

procedure TForm1.btnCargarImagenesClick(Sender: TObject);
var
  Nombres: TStrings;
  Img: TImage;
  i: Integer;
begin
  if not Assigned(ObjList) then
  begin
    ObjList:= TObjectList.Create;
    Nombres:= TStringList.Create;
    try
      LeerJPGS('C:\Users\Oz\Pictures',Nombres);
      for i:= 0 to Nombres.Count -1 do
      begin
        Img:= TImage.Create(Self);
        ObjList.Add(Img);
        with TImage(ObjList[i]) do
        begin
          Picture.LoadFromFile(Nombres[i]);
          Height:= 150;
          Width:= 300;
          Top:= i * 150 + 10;
          Stretch:= True;
          Parent:= ScrollBox1;
        end;     
      end;
    finally
      Nombres.Free;
    end;
  end;
end;

...

procedure TForm1.btnLiberarImagenesClick(Sender: TObject);
begin
  if Assigned(ObjList) then
    ObjList.Free;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 01-06-2011 a las 06:38:31. Razón: Remarcar relevantes en negrita
Responder Con Cita
  #5  
Antiguo 01-06-2011
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
gracias

muchas gracias ecfisa por tu respuesta. dios te bendiga.


saludos.
Responder Con Cita
  #6  
Antiguo 03-06-2011
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Poder: 17
ingmichel Va por buen camino
saludos ecfisa

saludos ecfisa como estas, espero que bien. bueno la razon de este mensaje es que tengo un pequeño inconveniente, resulta que me pidieron que las imagenes no se muestren todas de una sola vez, si no que se muestren una por una y tener dos botones(Siguiente y anterior) para ir navegando por las imagenes, mi duda es, como puedo modificar el codigo k me facilitaste para lograrlo ? y ademas que el componente timage adopte el ancho y el alto de la imagen que se esta leyendo ?

por favor ayudame...

gracias de antemano.
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
Leer todos los ficheros de una carpeta VRO Varios 9 14-12-2021 11:26:27
Borrar archivos dentro de carpeta ØnLy Varios 1 23-11-2010 06:36:55
Leer o modificar los permisos de una carpeta radge API de Windows 1 04-06-2010 16:47:03
listar archivos jpg dentro de una carpeta con subcarpetas JuanErasmo API de Windows 6 06-12-2006 22:52:49
adjuntar el archivo que esta dentro una carpeta kinteam1 Internet 1 11-10-2005 22:32:01


La franja horaria es GMT +2. Ahora son las 22:00:10.


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