COMO EXIBIR NO HARBOUR IMAGEM

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por JoséQuintas »

Código: Selecionar todos

FUNCTION DownloadFile( cUrl, cFile )

   LOCAL oSoap, cRetorno, lOk

   lOk := .F.
   BEGIN SEQUENCE WITH __BreakBlock()
      oSoap := Win_OleCreateObject( "MSXML2.ServerXMLHTTP" )
      oSoap:Open( "GET", cUrl, .F. )
      oSoap:Send()
      cRetorno := oSoap:ResponseBody()
      hb_MemoWrit( cFile, cRetorno )
      lOk := .T.
   END SEQUENCE

   RETURN lOk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

Josequintas, coloquei sua funçao e ele nao grava tambem

testei o link com http ou https no navegador funciona, mas no harbour nao.

http://pps.whatsapp.net/v/t61.24694-24/ ... e=64A044F5

seu trocar na sua funcao Responsebody() por Responsetext

ele salva o arquivo jpg com 0 bytes
com responsebody ele nem cria o arquivo jpg
Editado pela última vez por Jairo Maia em 22 Jun 2023 03:41, em um total de 2 vezes.
Razão: Mensagem com link quebrado. Por favor, ao postar link use a tag URL nos botões da caixa de edição. Post o link correto para correção. Obrigado.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por JoséQuintas »

Testei aqui e também não funciona PRA ESSE LINK.
Pra outros links funciona normalmente.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por JoséQuintas »

html.png
Sei lá, alguém de web deve saber.
Talvez algum tipo de proteção ?
Se tentar esse outro link, do src=, acusa timestamp inválido
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

estranho mesmo JoseQuintas

vou continuar fazendo umas pesquisas, mudei ate o content-type mas nao deu certo.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Jairo Maia »

Olá Pessoal,

Assim deu certo:

Código: Selecionar todos

#include "hbdyn.ch"

Function Main()
 Local cLink, cNomeLogo

 /*
   Nome que se quer atribuir ao logo
 */
 cNomeLogo := "LogoWhatsApp.Jpg"
 
 /*
   Link do logo
 */
 cLink := "https://pps.whatsapp.net/v/t61.24694-24/56105964_420995091992527_6265685285690933248_n.jpg?ccb=11-4&oh=01_AdTSwFiLkpkkhsCkMNa-3jRKrk-65O_zPKRmVcdWl75n0Q&oe=6499E5B5"
 
 If BaixarLogo( cLink, cNomeLogo )  // tenta baixar...
 
  Hb_Run( "LogoWhatsApp.Jpg" )  // para teste, se tem aplicativo vinculado com .Jpg, vai abrir a figura...
  
 Else
 
  Hb_Alert( "Download do logo falhou..." )
 
 EndIf
 
Return Nil

/*
  Baixar logotipo do site whatsapp...
*/
Func BaixarLogo( cLink, cNomeLogo )
 Local nHandleDLL, nStatus

 nHandleDLL:=HB_LibLoad("UrlMon.dll")
 
 nStatus:=HB_DynCall( { "URLDownloadToFileA", nHandleDLL, HB_DYN_CALLCONV_STDCALL}, 0, clink, cNomeLogo, 0, 0 )

 hb_LibFree( nHandleDLL )
 
Return ( nStatus = 0 )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por JoséQuintas »

Se não me engano, faltou aí no final o hb_LibFree()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Jairo Maia »

JoséQuintas escreveu:Se não me engano, faltou aí no final o hb_LibFree()
Não se enganou não, faltou mesmo :)

Corrigi, acrescentei no final a função: hb_LibFree( nHandleDLL )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

deu tudo certo !!

passando para agradecer a todos desse forum e especificamente ao Jose Quintas e Jairo Maia
por me ajudarem tanto na exibiçao do JPG devido ao conflitos que eu tinha no meu sistema wvt x wvg
quanto no download do jpg usando DLL, pois ja havia tentado muitas solucoes que nao deram certo.


Muito Obrigado mesmo !
ABEL
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

Josequintas, percebi na rotina anterior que exibe a foto jpg que esta sendo aberta em uma janela
separada do sistema (como eu quero nesse momento), se move a janela com o mouse a foto some e a
janela fica toda preta, sabe o que pode ser ?

Código: Selecionar todos

PROCEDURE EXIBE_JPG(rA_TITULO, rA_ARQJPG)
hGtAnt := hb_gtSelect()
//     
HB_GTRELOAD("WVG")
SETMODE(24,35) 
//
SET COLOR TO 'W*/N'
CLS
HB_GtInfo( HB_GTI_WINTITLE, rA_NOME )
wvt_DrawImage( 1, 0, 18, 34, rA_ARQJPG )
SET CURSOR OFF 
DO WHILE .T.
   INKEY(0.01)
   //
   IF LASTKEY()=27
       EXIT
   ENDIF
ENDDO
//
Hb_gtSelect( hGtAnt )
RETURN 

Desde ja agradeço.
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por ANDRIL »

Olá Abel, tente conforme abaixo, assim a cada ciclo recarrega a imagem.

Código: Selecionar todos

SET CURSOR OFF 
DO WHILE .T.
   wvt_DrawImage( 1, 0, 18, 34, rA_ARQJPG )
   INKEY(0.01)
   //
   IF LASTKEY()=27
       EXIT
   ENDIF
ENDDO
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

ANDRIL, era isso que eu queria evitar,

fazer a exibicao em loop no do while e como nao entendo muito de WVG e nem WVT talvez
tenha um jeito melhor.

Obrigado,
ABEL
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por ANDRIL »

Abel tenho usado assim e me atende. Mas tem outra forma que em tese faz loop interno nos objetos.

Código: Selecionar todos

caminhod="C:"

cLogo= padr("C:\SEMFOTO.JPG",60)
do while .t.
aPaint:={}

if file(alltrim(cLogo))
 Wvt_DrawImage( 06, 30, 12, 50, alltrim(cLogo)  )
 AaDd( aPaint, { Nil, {|| Wvt_DrawImage( 06, 30, 12, 50, alltrim(cLogo)  ) }, Nil } ) 
endif

 AaDd( aPaint, { Nil, {|| Wvt_DrawBoxRaised( 06, 30, 12, 50 ) }, Nil } )
 WvtSetPaint( aPaint )
@15,01 say "Arquivo de Logo: " get cLogo pict"@!"
read

if lastkey()=27
exit
endif

enddo
aPaint:={}
WvtSetPaint( aPaint )
Wvg_ClearGUIObjects()
return
Seria mais ou menos isso, tentei extrair de um código mais complexo. Não sei se vai compilar.
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Abel
Usuário Nível 3
Usuário Nível 3
Mensagens: 332
Registrado em: 14 Mar 2012 13:16
Localização: sao paulo / sp

COMO EXIBIR NO HARBOUR IMAGEM

Mensagem por Abel »

Ola, Andril

fiz uma solucao mecanica, pedindo ao usuario pressionar F9 quando mexer na janela e a imagem sumir.
obrigado pela dica tambem.

Código: Selecionar todos

PROCEDURE EXIBE_JPG_EM_JANELA(rA_ARQJPG,rA_NOME)
LOCAL hGTaNT, rN_LINANTES, rN_COLANTES, rN_ACAO
//
hGtAnt := hb_gtSelect()
//
HB_GTRELOAD("WVG")
SETMODE(24,35) 
//
SET COLOR TO 'W*/N'
CLS
HB_GtInfo( HB_GTI_WINTITLE, rA_NOME )
//
SET CURSOR OFF 
@ 08,07 SAY ' A foto sumiu porque '
@ 09,07 SAY ' mexeu na janela.    '
@ 11,07 SAY ' F9-Exibe novamente  '
//
wvt_DrawImage( 1, 0, 18, 34, rA_ARQJPG )
//
// AGUARDA ATE CLICAR EM QUALQUER LUGAR DA TELA OU MUDAR O FOCO  DA JANELA FECHANDO A JANELA DA FOTO DE FORMA AUTOMATICA
//
rN_ACAO=0     // 0=NAO FAZ NADA  1=SALVAR    2=EXCLUIR
rN_COLANTES=0
rN_LINANTES=0
//
DO WHILE .T.
   INKEY(0.01)
   //
   IF LASTKEY()=-8  // F9
      wvt_DrawImage( 1, 0, 18, 34, rA_ARQJPG )
   elseif LASTKEY()=27
      exit
   endif
enddo

Hb_gtSelect( hGtAnt )
return 


Responder