Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2012
Volkhavaar82 Volkhavaar82 is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 8
Poder: 0
Volkhavaar82 Va por buen camino
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!
Responder Con Cita
  #2  
Antiguo 16-05-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #3  
Antiguo 16-05-2012
Volkhavaar82 Volkhavaar82 is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 8
Poder: 0
Volkhavaar82 Va por buen camino
Cita:
Empezado por roman Ver Mensaje
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
Responder Con Cita
  #4  
Antiguo 17-05-2012
Volkhavaar82 Volkhavaar82 is offline
Registrado
NULL
 
Registrado: may 2012
Posts: 8
Poder: 0
Volkhavaar82 Va por buen camino
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!
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
imagenes virgilionv OOP 3 22-03-2008 19:24:18
Imagenes Nomad Varios 1 04-06-2007 22:39:01
Imagenes mahlon Varios 8 26-08-2006 14:58:53
imagenes pablo Gráficos 2 23-05-2004 12:12:09
Uso de imagenes deimonio Varios 1 13-10-2003 08:15:05


La franja horaria es GMT +2. Ahora son las 18:05:34.


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