Ver Mensaje Individual
  #17  
Antiguo 28-03-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
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 Jesus.

Código PHP:
bool getJpegsize(TMemoryStream *jpegint &widthint &heightint &bitDepth) {
  
int n;
  
unsigned char b;
  
unsigned int w;
  
bool result false;

  
jpeg->Size;
  
jpeg->Position 0;
  if (
<= 0) return false;
  
jpeg->Read(&w2);
  if ( 
0xD8FF ) return false;
  
jpeg->Read(&b1);
  while (
jpeg->Position && b==0xFF) {
    
jpeg->Read(&b1);
    switch(
b) {
      case 
0xC0: case 0xC1: case 0xC2: case 0xC3: {
        
jpeg->Seek(3soFromCurrent);
        
jpeg->Read(&w2);
        
height = (w&0xFF)<<8|(w&0xFF00)>>8;
        
jpeg->Read(&w2);
        
width =  (w&0xFF)<<8|(w&0xFF00)>>8;
        
jpeg->Read(&b1);
        
bitDepth 8;
        return 
true;
      }; break;
      case 
0xFFjpeg->Read(&b1); break;
      case 
0xD0: case 0xD1: case 0xD2: case 0xD3: case 0xD4:
      case 
0xD5: case 0xD6: case 0xD7: case 0xD8: case 0xD9: {
        
jpeg->Seek(1soFromCurrent);
        
jpeg->Read(&b1);
      };
      default: {
        
jpeg->Read(&w2);
        
jpeg->Seek(((w&0xFF)<<8|(w&0xFF00)>>8)-2soFromCurrent);
        
jpeg->Read(&b,1);
      }; break;
    }
  }

Ejemplo de uso:
Código PHP:
void __fastcall TForm1::Button1Click(TObject *Sender){
  if (
OpenDialog1->Execute()) {
    
TMemoryStream *ms = new TMemoryStream;
    
int w,h,d;

    
ms->LoadFromFile(OpenDialog1->FileName);
    
getJpegsize(mswhd);
    
delete ms;
    
ShowMessage("Width: "+IntToStr(w)+
                
"\nHeight: "+IntToStr(h)+
                
"\nDepth: "+IntToStr(d));
  }

Saludos
__________________
Daniel Didriksen

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