Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-10-2013
Avatar de ginkaku
ginkaku ginkaku is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 59
Poder: 14
ginkaku Va por buen camino
Gracias por el codigo lo voy a revisar ahora. Disculpa ecfisa, todo funciona perfecto pero solo cuando trabajo con imagenes bmp. Bueno en realidad si logra insertar jpeg, pero es el codigo de recuperar el q me falla, obviamente por la variable Graphic::TBitmap que no acepta los jpeg, ¿que tipo de variable deberia colocar para recuperar un jpeg? Intente con TJpegImage pero no tiene LoadFromStream, la cual uso para asignar. Alguien en el foro me podria guiar?
Responder Con Cita
  #2  
Antiguo 24-10-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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 ginkaku.

Una de las opciones, la mas simple a mi modo de ver, es que guardes conjuntamente con la imagen, el tipo de la misma en otro campo creado en la tabla a ese efecto.

Supongamos que tenes los campos "IMAGE" y "IMGTYPE", este último de tipo entero en los que arbitrariamente voy a considerar 0=BMP, 1=JPG, ..., entonces aprovechando el polimorfismo podrías hacer:
Código:
...
#include <jpeg.hpp>
// (y demás necesarios)

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Graphics::TBitmap *B = new Graphics::TBitmap;
  TGraphic *G;

  switch (IBQuery1->FieldByName("IMGTYPE")->AsInteger) {
    case 0 : G = new Graphics::TBitmap; break;
    case 1 : G = new TJPEGImage; break;
    case 2 : G = new TGIFImage; break;
    //...
  }
  G->Assign(((TBlobField*)(IBQuery1->FieldByName("IMAGE"))));
  B->Assign(G);
  Image1->Picture->Bitmap->Assign(B);

  delete G;
  delete B;
}
Para el ejemplo usé componentes IBX, pero no tendría que haber inconveniente con otros.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 24-10-2013
Avatar de ginkaku
ginkaku ginkaku is offline
Miembro
NULL
 
Registrado: nov 2012
Posts: 59
Poder: 14
ginkaku Va por buen camino


Totalmente de acuerdo ecfisa, muchisimas gracias, funciona de maravilla ese codigo. Inclusive ya no tengo que usar una variable de tipo TStream, recupera perfectamente las imagenes de cualquier tipo de la base de datos y es mas entendible para mi.
Nuevamente gracias por la pronta colaboración.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
recuperando rutas de directorios danielmj Varios 7 05-06-2013 19:53:26
recuperando muchos registros con StoredProc R0M3R0 Varios 3 15-01-2009 14:39:44
Recuperando mysql decimal con tipo single Migmam2 SQL 3 27-08-2007 16:53:36
Recuperando imagenes desde Oracle MarioATamborini Oracle 4 14-07-2005 21:52:14
Recuperando imagenes desde Oracle vmladino Gráficos 1 11-11-2004 17:23:35


La franja horaria es GMT +2. Ahora son las 01:18:08.


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
Copyright 1996-2007 Club Delphi