Ver Mensaje Individual
  #8  
Antiguo 12-10-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 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 de nuevo.

De este modo me funciona bien:
Código PHP:
...
#include <jpeg.hpp>

void blobTojpg( TField *fld, TImage *img )
{
  
TBlobField *B = static_cast <TBlobField*> ( fld );

  if( !
B->Value.IsEmpty() ) {
    
TJPEGImage *J = new TJPEGImage;
    try {
      
J->Assign( B );
      
img->Picture->Bitmap->Height = J->Height;
      
img->Picture->Bitmap->Width  = J->Width;
      
img->Picture->Bitmap->Canvas->Draw( 0, 0, J );
    }
    
__finally {
      
delete J;
    }
  }
} 

Y si gustas usar streams,
Código PHP:
void blobTojpg2( TField *fld, TImage *img )
{
  
TBlobField *B = static_cast <TBlobField*> ( fld );

  if ( !
B->Value.IsEmpty() ) {
    
TStream *Stream = new TMemoryStream;
    
TJPEGImage *Jpg = new TJPEGImage;
    try {
     
B->SaveToStream( Stream );
     
Stream->Seek( 0, soFromBeginning);
     
Jpg->LoadFromStream( Stream );
     
img->Picture->Assign( Jpg );
    }
    
__finally {
      
delete Stream;
      
delete Jpg;
    }
  }
} 
Llamada (para ambos casos):
Código PHP:
void __fastcall TForm1::DataSetAfterScroll( TDataSet *DataSet )
{
   
blobTojpg( IBDataSet1->FieldByName("IMAGE"), Image1 ); // o blobToJpg2( ...
} 
El resultado en ambos casos:


Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita