Page 1 of 1

Conocer la dimensiones de una imagen sin tener que abrirla

PostPosted: Sun Jul 10, 2011 10:53 pm
by RodolfoRBG
Hola foro,

Al abrir una carpeta en Windows se puede seleccionar una columna que te indica las dimensiones de una imagen.

Como puedo extraer ese dato desde FWH? o en otras palabras, como puedo saber la dimensiones de una imagen sin tener que abrirla?

De antemano gracias.

Re: Conocer la dimensiones de una imagen sin tener que abrirla

PostPosted: Mon Jul 11, 2011 1:44 pm
by Willi Quintana
Hola,,, de alguna manera hay que acceder a la imagen para obtener sus propiedades,,, seria algo asi:
Code: Select all  Expand view
DEFINE IMAGE oTmp FILENAME cLogo
nLW := oTmp:nWidth()
nLH := oTmp:nHeight()
oTmp:End()
...
..
.
 

Re: Conocer la dimensiones de una imagen sin tener que abrirla

PostPosted: Mon Jul 11, 2011 5:32 pm
by RodolfoRBG
Gracias por tu respuesta Willi, aunque no es lo que buscaba, se me hace buena idea lo que me sugieres.

Yo buscaba alguna funcion como el FileStats() de xHarbour que te da mas informacion de los archivos.

Re: Conocer la dimensiones de una imagen sin tener que abrirla

PostPosted: Mon Aug 15, 2011 3:33 am
by jll-fwh
Hola Rodolfo:

Se puede obtener informacion de los archivos usando ActiveX.

Sino recuerdo mal la web donde estaban todos los parametros es:
http://msdn.microsoft.com/en-us/library/ms930698.aspx

Por ejemplo:

Code: Select all  Expand view


/*------------------------------------------------------------------------------*/
*STATIC Function GetPropFile( oWnd, cFile )
/*------------------------------------------------------------------------------*/
 /*
   LOCAL oActiveX, pStatus := Array( 11 )

   oActiveX = TActiveX():New( oWnd, "MediaPlayer.MediaPlayer.1",0,0,0,0)
   oActiveX:SetProp( "FileName", cFile )
   oActiveX:Hide()

   pStatus[1]  := cFileNoPath( oActiveX:GetProp( "FileName" ) ) // Nombre del fichero
   pStatus[2]  := cFilePath( oActiveX:GetProp( "FileName" ) )   // Path
   pStatus[3]  := oActiveX:GetProp( "Duration" )                // Duracion
   pStatus[4]  := oActiveX:GetProp( "ImageSourceWidth" )        // Ancho fotograma
   pStatus[5]  := oActiveX:GetProp( "ImageSourceHeight" )       // Alto fotograma
   pStatus[6]  := oActiveX:GetProp( "BandWidth" )               // Velocidad de datos
   pStatus[7]  := oActiveX:GetProp( "Rate" )                    // Velocidad fotogramas/s
   pStatus[8]  := oActiveX:GetProp( "SourceProtocol" )          // Protocolo de datos
   pStatus[9]  := FDate( oActiveX:GetProp( "FileName" ) )       // Fecha creacion
   pStatus[10] := FTime( oActiveX:GetProp( "FileName" ) )       // Hora creacion
   pStatus[11] := FSize( oActiveX:GetProp( "FileName" ) )       // Tamaño

   oActiveX:DO( "Stop" )
   oActiveX:End()
   DeleteObject( oActiveX )

Return( pStatus )





Un saludo
JLL

Re: Conocer la dimensiones de una imagen sin tener que abrirla

PostPosted: Mon Aug 15, 2011 7:54 am
by RodolfoRBG
JLL, gracias por tu sugerencia.

Oye, ya que vi en tu ejemplo que usas ActiveX para mostrar videos, yo hago lo mismo y uso la siguiente linea:

Code: Select all  Expand view

  @ 58,0 ACTIVEX oActiveX PROGID "MediaPlayer.MediaPlayer.1" OF oWndV SIZE 400,400
 


y me funciona bien en WVista pero al correr el sistema en WXP solo muestra la caratura inicial del MediaPlayer e inmediatamente aparecen errores. Sabes tu a que se debe? No te ha pasado lo mismo? Aun no lo pruebo en W7.

'chas gracias de antemano.