Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Visuaizacion de Imágenes JPG (https://www.clubdelphi.com/foros/showthread.php?t=78776)

Volkhavaar82 16-05-2012 18:45:59

Visuaizacion de Imágenes JPG
 
Saludos! es mi primer duda en el foro espero poder plantearla claramente

Me encuentro buscando alternativas a una problemática que tengo con una aplicación que muestra un archivo JPG de firmas, que se encuentran previamente almacenada en una base de datos SQL Server 2000, la a misma se está rehaciendo dado que de la versión anterior no se encontraron los códigos fuente para una serie de modificaciones.

El tema es que, el estandar es trabajar con unos componentes Lead, particularmente el TLeadImage, el cual funciona correctamente en SO win32, pero al ejecutarse en un SO x64, muestra un error al mostrar la imagen en el componente.

Mi primer alternativa fue buscar información en internet de si me faltaba un DLL o algo asi, pero no es demasiado extensa la variedad para buscar, se me ocurrió la mexicanada de usar componentes nativos y emular parte de la funcionalidad de otra manera, el detalle es que (al menos en la version 6 que usamos) los componentes de imagen solo pueden leer archivos BMP, aunque puedo equivocarme y por eso vengo a preguntar

1.- Hay forma de que los TImage y/o TDBImage puedan leer JPG?
2.- Cual suele ser el plan de accion cuando tienen problemas de compatibilidad entre win32 y x64

Creo que sería todo de momento, gracias por su atención de antemano

Saludos!

roman 16-05-2012 19:17:51

Con Delphi 6, debería bastar con que incluyas la unidad jpeg para poder cargar imagenes jpg en un TImage. Sin embargo, me parece que el TDBImage únicamente puede leee imágenes BMP.

// Saludos

Volkhavaar82 16-05-2012 19:53:13

Cita:

Empezado por roman (Mensaje 432715)
Con Delphi 6, debería bastar con que incluyas la unidad jpeg para poder cargar imagenes jpg en un TImage. Sin embargo, me parece que el TDBImage únicamente puede leee imágenes BMP.

// Saludos

Incluí el Unit como me lo sugereiste y en efecto el TImage y puede almacenar otro tipo de imágenes (anotado para futuras referencias, gracias), sin embargo el TDBImage me sigue marcando error, así que decidí intentar asignar el valor desde el ADOQuery como cualquier otro comoponente, pero no sé como extraer la imagen, lo estoy intentando mas o menos asi

Código:

imagen.Picture.Bitmap := ADOQueryImagen ???
Pero no encuentro la manera de extraer la imagen

Saludos

Volkhavaar82 17-05-2012 18:18:09

Como no puedo editar el post, caigo en el repost

Ya pude solucionar el problema, que por lo visto en el foro y en otros en inglés es muy recurrente, así que dejo mis respuesta al mismo por si puede servirle a alguien, claro, la autoría no es mía sino de la gente cuyos post me fueron de utilidad como guillotmarc de este mismo foro

Código Delphi [-]
Var
  stream  : TStream;
  jpg     : TJpegImage;
begin
 
     if queryCampoImagen.BlobSize > 0 then
      begin
         stream := TStream.Create;
         jpg    := TJpegImage.Create;

         Imagen.Picture := nil;
         try
            stream := query.CreateBlobStream(queryCampoImagen, bmRead);
            stream.Seek(0,soFromBeginning);
            jpg.LoadFromStream(stream);
            Imagen.Picture.Assign(jpg);
         finally
            stream.Free;
            jpg.Free;
         end;
      end;

La clave que diferenció con las decenas de código que vi, fué la línea en negritas, yo también estuve atorado con los JPEG Error 41 y demás que aparecen, la idea es inicializar el punto donde se hará la lectura del stream, porque sin ello no reconoce el archivo como JPEG y de ahi deriva el error que he visto en muchos post, saludos!

Adicional
usé la versión 6 de Delphi con una BD MS SQL Server 2000, con componentes ADO y un TImage

Saludos!


La franja horaria es GMT +2. Ahora son las 12:09:30.

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