Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Extraer Imagenes (https://www.clubdelphi.com/foros/showthread.php?t=55828)

Toni-2006 28-04-2008 19:01:34

Extraer Imagenes
 
En la actualidad trabajo con un programa de punchado que convierte los diseños en "datos" para que una máquina de bordar "lo entienda". Pues bien, cuando accedo al directorio donde están los ficheros con el explorer de windows, si seleccionas vistas en miniatura, puedes ver una pequeña imagen del fichero.
La pregunta es: ¿se puede extraer desde delphi esta imagen?

Muchas gracias y un saludo.

cHackAll 29-04-2008 02:14:46

Talvez el truco 467 te sea de utilidad, u otro con la palabra "thumb".

Saludos

roman 29-04-2008 02:29:53

Cita:

IExtractImage Interface Exposes methods that request a thumbnail image from a Shell folder.
¡Vaya! Y yo intentando hacerlo a la antigüita. No sabía de esa interfaz, gracias por el truco Javier.

// Saludos

MaMu 29-04-2008 07:08:58

Cita:

Empezado por cHackAll (Mensaje 283132)
Talvez el truco 467 te sea de utilidad, u otro con la palabra "thumb".

Saludos

Será aplicable al addFolder de un ShellListView? Sigo intentando emular las vistas en minuatura del explorador de windows.

Delfino 29-04-2008 10:24:36

Te puede interesar el componente JvImageListViewer de la JVCL..

Toni-2006 29-04-2008 11:53:12

Muchísimas gracias por la aportación, pero estoy utilizando Delphi 7 y tengo los siguientes errores:

Result:= nil; -- Incompatyble types: 'tagBitMap' and 'Pointer'

Result:= TBitMap.Create; -- Object or class type required

Result.Handle:= hBitMap; -- Undeclared identifier: 'Handle'

Alguna idea? Gracias.

Toni-2006 29-04-2008 12:30:53

Bueno ya he conseguido que no hayan errores al compilar, pero al pulsar el botón para acceder al fichero del que quiero ver la imagen tengo este error de sistema:

Violación de acceso en la dirección......

La línea donde parece que está el error es:

if LongBool(Folder.ParseDisplayName(0, nil, lpFileName, PDWORD(0)^, ItemIDList, PDWORD(0)^)) then Exit;

Y lo que le digo yo para que extraiga la imagen:

Image1.Picture.Assign(GetThumbnail('c:\wingsxp2\designs\06pdb001.ngs', 'c:\06pdb001.jpg', 96, 96));

Toni-2006 29-04-2008 12:57:43

Y para más información, el programa en cuestión tiene una DLL que en su descripción pone 'MLS/NGS file shell extension'

cHackAll 29-04-2008 16:59:01

Cita:

Empezado por Toni-2006 (Mensaje 283191)
Image1.Picture.Assign(GetThumbnail('c:\wingsxp2\designs\06pdb001.ngs', 'c:\06pdb001.jpg', 96, 96));

El primer parámetro de la función GetThumbnail espera al ruta o carpeta que contiene el archivo gráfico, y el segundo parámetro es el nombre del archivo contenido en la carpeta anteriormente definida, Ej;

Código Delphi [-]
Image1.Picture.Assign(GetThumbnail('c:\wingsxp2\designs', '06pdb001.ngs', 96, 96));

Cita:

Empezado por Toni-2006 (Mensaje 283193)
...el programa en cuestión tiene una DLL que en su descripción pone 'MLS/NGS file shell extension'

Si el anterior ejemplo te retorna un gráfico vacío o te da un error, sube la DLL que comentas para ver si la podemos utilizar.

Saludos

Toni-2006 29-04-2008 17:30:51

Bufffff, por fin. No te puedes imaginar lo que te agradezco la ayuda prestado, porque preguntando a los "fabricantes" del soft, me habían dicho que era muy complidado y que no podría hacerlo.

Muchíiiiiiiiiisimas gracias y un saludo.

P.D.: No soy programador profesional ni me dedico a ello, simplemente me gusta hacerme algunas cosas que complementen otras, así que esto es sólo para uso y disfrute personal.


La franja horaria es GMT +2. Ahora son las 23:52:24.

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