Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Diseño e implementación de Thumbnails (https://www.clubdelphi.com/foros/showthread.php?t=42607)

MaMu 18-04-2007 08:46:33

Diseño e implementación de Thumbnails
 
Como bien dice el titulo, esto diseñando un aplicación que me escanee un directorio en busca de archivos bmp y jpg, y que me permita visualizar las imagenes encontradas en forma de thumbnails.
Yo para crear los thumbnails hago lo siguiente:

Código Delphi [-]
var
   bmp: TBitmap;
   jpg: TJpegImage;
   scale: Double;
 begin
   // Abrir la imagen
   if opendialog1.execute then
   begin
     jpg := TJpegImage.Create;
     try
       // Cargar la imagen
       jpg.Loadfromfile(opendialog1.filename);
       if jpg.Height > jpg.Width then
         scale := 50 / jpg.Height
       else
         scale := 50 / jpg.Width;
       bmp := TBitmap.Create;
       try
         //Crear el thumbnail
         bmp.Width := Round(jpg.Width * scale);
         bmp.Height := Round(jpg.Height * scale);
         bmp.Canvas.StretchDraw(bmp.Canvas.Cliprect, jpg);
         // Dibujarlo en el control, aca lo hago en el form, pero lo puedo hacer
         //segun que control elija
         Self.Canvas.Draw(10, 20, bmp);
         // Si nececesito convertirlo y guardarlo en disco hago
         jpg.Assign(bmp);
         jpg.SaveToFile(ChangeFileext(opendialog1.filename, '_thumb.JPG'));
       finally
         bmp.free;
       end;
     finally
       jpg.free;
     end;
   end;

Pero no se me ocurre, en que control dibujarlo, ya que quiciera meter todas las imagenes encontradas, ya pasadas a thumbnail en un mismo control, al estilo "vista de imagenes en miniatura" que trae el Xp. Ya que quiero poner un Checkbox a cada una, para seleccionarla o no.

Alguien esta inspirado y me tira alguna idea?

Saludos y gracias

roman 18-04-2007 09:29:07

Pues no sé qué tanto te sirva, pero un ListView te permite mostrar las imágenes de un ImageList y tiene la opción CheckBoxes que te añade casillas en cada imagen.

// Saludos

Lepe 18-04-2007 11:39:52

Otra forma es un Frame, File -> new -> Frame

Dentro pones el Timage y el CheckBox, así como todas las rutinas de carga y visualización. Solo se trata de crear ese Frame en tiempo de ejecución y asignar la ruta de la imagen, así el propio frame se encargaría de cargar la foto.

Aquí tienes un ejemplo

Saludos

seoane 18-04-2007 13:11:09

Ampliando un poco la respuesta de roman, aquí puedes encontrar algo de código:
http://www.clubdelphi.com/foros/showthread.php?t=30918

MaMu 18-04-2007 20:25:37

Gracias Roman, Seoane y Lepe por las sugerencias. Me voy a quedar con la de usar ListView, me resulta la forma más comoda de todas.

Saludos


La franja horaria es GMT +2. Ahora son las 02:17:39.

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