RESUELTO, mostrar un archivo JPG con IMAGE sin freeimage.dll

Post Reply
User avatar
albeiroval
Posts: 383
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

RESUELTO, mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by albeiroval »

Buenas noches,

Como podria mostrar un archivo JPG con IMAGE sin tener que usar freeimage.dll, probe con XIMAGE pero
no me muestra la imagen, este es el codigo que uso :

Code: Select all | Expand


@    1,  1 IMAGE oImage SIZE 60, 18 OF oDlg
...
@  14, 75 BTNBMP oBtn2 SIZE 70, 15 OF oDlg;
            2007;
            PROMPT "F2 = Refresca";
            LEFT;
            ACTION ( DownloadImageCaptcha(),;
                     oImage:LoadBmp( cFileCaptcha ) )

...
ACTIVATE DIALOG oDlg;
    ON INIT ( oImage:LoadBmp( cFileCaptcha ) );
    VALID lExit;
    CENTER
 
Last edited by albeiroval on Fri Jan 05, 2018 5:00 pm, edited 1 time in total.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by nageswaragunupudi »

The main difference between IMAGE and XIMAGE is that IMAGE uses FreeImage.dll and XIMAGE does not use Freeimage.dll.
If you want to use freeimage.dll, then use IMAGE control and if not use XIMAGE control
Regards

G. N. Rao.
Hyderabad, India
User avatar
albeiroval
Posts: 383
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by albeiroval »

Mr Rao, gracias por responder

Este es el codigo que uso :

Code: Select all | Expand



#xtranslate  cFileCaptcha  =>  GetEnv( "USERPROFILE" ) + "\Downloads\captcha.jpg"

static Function Captcha()
  Local oDlg, oFont
  Local oImage, oSay, oGet, oBtn1, oBtn2
  Local cCode := Space(10)
  Local lExit := .F.
  Local hBmp1 := BMPYES()
  Local hBmp2 := BMPREFRESH()
   
  DownloadImageCaptcha()
 
  DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12 BOLD
   
    DEFINE DIALOG oDlg FROM 0, 0 TO 10.5, 40;
        TITLE "CAPTCHA";
        FONT oFont;
        STYLE nOr( WS_POPUP,DS_MODALFRAME,WS_CAPTION,WS_VISIBLE )

  @    1,  1 XIMAGE oImage SIZE 60, 18 OF oDlg
   
  @  2.5,  4 SAY oSay PROMPT "CODIGO :" SIZE 30, 10
   
  @  3.0,  8 GET oGet VAR cCode SIZE 60, 10
   
  @  60, 50 BTNBMP oBtn1 SIZE 70, 15 OF oDlg;
                    2007;
                    PROMPT "F3 = Acepta";
                    LEFT;
                    ACTION ( lExit := .T., oDlg:End() )
                   
  @  14, 75 BTNBMP oBtn2 SIZE 70, 15 OF oDlg;
            2007;
            PROMPT "F2 = Refresca";
            LEFT;
            ACTION ( DownloadImageCaptcha(),;
                     oImage:SetSource( cFileCaptcha ) )                  
     
  oBtn1:bPainted = {|hDC| DrawBitmap( hDC, hBmp1, 0, 0 )}  
  oBtn2:bPainted = {|hDC| DrawBitmap( hDC, hBmp2, 0, 0 )}
 
  oDlg:bKeydown  = {|nKey| KeyDownCaptcha(oBtn1, oBtn2, nKey)}
  oDlg:lhelpIcon = .F.
     
  ACTIVATE DIALOG oDlg;
    ON INIT ( oImage:SetSource( cFileCaptcha ) );
    VALID lExit;
    CENTER
       
  DeleteObject( hBmp1 ) 
  DeleteObject( hBmp2 ) 
    
Return AllTrim(cCode)

//------------------------------------------//

static Function KeyDownCaptcha( oBtn1, oBtn2, nKey )
   
    if nKey == VK_F2
       Eval(oBtn2:bAction)
    elseif nKey == VK_F3
       Eval(oBtn1:bAction)
    endif  
   
Return Nil

//------------------------------------------//

static Function DownloadImageCaptcha()
    Local cUrl  := "http://contribuyente.seniat.gob.ve/BuscaRif/Captcha.jpg"
 
  URLDOWNLOADTOFILE( 0, cUrl, cFileCaptcha )
 
Return NIL

//------------------------------------------//

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG,;
                                                                cUrl AS LPSTR,;
                                                                cFileName AS LPSTR,;
                                                                nReserved AS DWORD,;
                                                                nFnCB AS LONG );
    AS LONG PASCAL;
    FROM "URLDownloadToFileA" LIB "urlmon.dll"

 


Usando XIMAGE carga la imagen con ON INIT, pero con BTNBMP oBtn2 no hace el Refresh de la imagen si necesito cambiarla.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by nageswaragunupudi »

Can you please change the ACTION clause of oBtn2 like this?

Code: Select all | Expand

           ACTION ( DownloadImageCaptcha(),;
                     oImage:SetSource( "" ), ;
                     oImage:SetSource( cFileCaptcha ) )                  
 

I shall be glad if you make this modification and let me know if this is working.
Regards

G. N. Rao.
Hyderabad, India
User avatar
albeiroval
Posts: 383
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by albeiroval »

Mr Rao,

Excelente, funciona muy bien, muchas gracias.

Excellent, it works very well, thank you very much.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
nageswaragunupudi
Posts: 10721
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Been thanked: 8 times
Contact:

Re: RESUELTO, mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by nageswaragunupudi »

Thanks.

Another advice.
Instead of

Code: Select all | Expand

 @  60, 50 BTNBMP oBtn1 SIZE 70, 15 OF oDlg;
                    2007;
                    PROMPT "F3 = Acepta";
                    LEFT;
                    ACTION ( lExit := .T., oDlg:End() )
                   
  @  14, 75 BTNBMP oBtn2 SIZE 70, 15 OF oDlg;
            2007;
            PROMPT "F2 = Refresca";
            LEFT;
            ACTION ( DownloadImageCaptcha(),;
                     oImage:SetSource( cFileCaptcha ) )                  
     
  oBtn1:bPainted = {|hDC| DrawBitmap( hDC, hBmp1, 0, 0 )}  
  oBtn2:bPainted = {|hDC| DrawBitmap( hDC, hBmp2, 0, 0 )}
 

You better write:

Code: Select all | Expand

 @  60, 50 BTNBMP oBtn1 SIZE 70, 15 OF oDlg;
                    2007;
                    PROMPT "F3 = Acepta" RESOURCE hBmp1 ;
                    LEFT;
                    ACTION ( lExit := .T., oDlg:End() )
                   
  @  14, 75 BTNBMP oBtn2 SIZE 70, 15 OF oDlg;
            2007;
            PROMPT "F2 = Refresca" RESOURCE hBmp2 ;
            LEFT;
            ACTION ( DownloadImageCaptcha(),;
                     oImage:SetSource( cFileCaptcha ) )                  
     
  // oBtn1:bPainted = {|hDC| DrawBitmap( hDC, hBmp1, 0, 0 )}  
  // oBtn2:bPainted = {|hDC| DrawBitmap( hDC, hBmp2, 0, 0 )}
 
Regards

G. N. Rao.
Hyderabad, India
User avatar
albeiroval
Posts: 383
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: RESUELTO, mostrar un archivo JPG con IMAGE sin freeimage.dll

Post by albeiroval »

Mr Rao, much better, thanks for the information.

Mr Rao, mucho mejor, gracias por la información.
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Post Reply