Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Descargar gráficos de una tabal

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Descargar gráficos de una tabal Responder citando

Buenas. Tengo definida una tabla paradox en la que hay uncampo de tipo imagen, que cargo sin ningún problema con un LoadFromFile. Ei problema viene cuando quiero extraer ese gráfico guardado a un fichero con un SaveToFile. Estoy usando este código:
Código:
TJPEGImage *ImgJpg = new TJPEGImage();
AnsiString cImgJpg = ExtractFilePath(Application->ExeName) + fCine->Peliculas->FieldByName("Título")->AsString + ".jpg";

try
{
     ImgJpg->Assign(fCine->Peliculas->FieldByName("Caratula")->Value);
     ImgJpg->SaveToFile(cImgJpg);
}
__finally
{
     delete ImgJpg;
}

En ImgJpg->Assign he probado con ->Value, con ->AsGraphic, con ->AsBlob... pero siempre me da error de sintaxis al compilar. Va por delante que en el formulario tengo puesto un DBImage asociado a ese campo de la tabla. ¿Alguna idea?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

yo cargo la imagen en un stream:

Código:

        std::auto_ptr<TJPEGImage> JImg (new TJPEGImage);

        TBlobField *bf = dynamic_cast<TBlobField*>
                        (MdDatos->TabArticulo->FieldByName("ART_CAR"));

        if(bf)
        {
            std::auto_ptr<TMemoryStream> ms (new TMemoryStream);
            bf->SaveToStream(ms.get());
            ms->Position = 0;
            JImg->LoadFromStream(ms.get());
            ((TImage *) Sender)->Picture->Assign(JImg.get());
        }
        else
        {
            Application->MessageBox("Imposible cargar la imagen de la tabla.\nSe cargará la imagen por defecto",
                                    FrmPpal->Caption.c_str(),
                                    MB_ICONERROR+MB_OK);
            CargarCaratulaDefecto(Sender);
        }


el codigo no guarda la imagen en un fichero, sino que la carga en un TImage, pero añadiendo
Código:
JImg->SaveToFile(path);

deberia funcionar
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Grcias. Lo probé y me funciona perfecto. El código me ha quedado así:
Código:
#include <memory>
AnsiString cCaratula = ExtractFilePath(Application->ExeName) + fCine->Peliculas->FieldByName("Título")->AsString + ".jpg";
std::auto_ptr<TJPEGImage> JImg (new TJPEGImage);

TBlobField *bCaratula = dynamic_cast<TBlobField*> (fCine->Peliculas->FieldByName("Caratula"));

if (bCaratula)
{
     std::auto_ptr<TMemoryStream> ms (new TMemoryStream);

     bCaratula->SaveToStream(ms.get());
     ms->Position = 0;
     try
     {
          JImg->LoadFromStream(ms.get());
          ((TImage *) Sender)->Picture->Assign(JImg.get());
     }
     catch(...)
     {
     }
}
JImg->SaveToFile(cCaratula);

Con lo que me crea un fichero JPG con el título de película como nombre del mismo.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.