Imagem convertida pra base64

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

Imagem convertida pra base64

Mensagem por JoséQuintas »

Alguém tem idéia porque imagem convertida de/para bse64 não funciona na harupdf?

Salvei imagem no MySQL em base64.
Se eu desconverter e salvar em disco, a imagem está lá
Se eu usar na harupdf não funciona.

Mas se eu usar #pragma da imagem, na harupdf funciona.

Alguma idéia porque teoricamente o mesmo conteúdo não funciona?
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/
Fernando queiroz
Usuário Nível 4
Usuário Nível 4
Mensagens: 779
Registrado em: 13 Nov 2014 00:41
Localização: Porto Alegre/RS

Imagem convertida pra base64

Mensagem por Fernando queiroz »

JoséQuintas escreveu:Alguém tem idéia porque imagem convertida de/para bse64 não funciona na harupdf?

Salvei imagem no MySQL em base64.
Se eu desconverter e salvar em disco, a imagem está lá
Se eu usar na harupdf não funciona.

Mas se eu usar #pragma da imagem, na harupdf funciona.

Alguma idéia porque teoricamente o mesmo conteúdo não funciona?
quando eu retorno o PDF salvo eu simplesmente abro com o visualizador de PDF , ta funcionando aqui
nao entendi o usar o HARUPDF
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Imagem convertida pra base64

Mensagem por JoséQuintas »

oImage := HPDF_LoadJPEGImageFromMem( ::oPDF, cJPEGMem, Len( cJPEGMem ) )

Isso funciona com MemoRead()
Deveria funcionar com hb_base64Decode( cTxt )
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
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Imagem convertida pra base64

Mensagem por sygecom »

Dica:
Se está usando MemoWrit, então enviar .F. o 3º parâmetro.

ex:
MemoWrit( 'c:\teste.png' , cCONTEUDO_BAS64, .F. )
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Imagem convertida pra base64

Mensagem por JoséQuintas »

sygecom escreveu:Dica:
Se está usando MemoWrit, então enviar .F. o 3º parâmetro.
Isso é xharbour, no Harbour é hb_MemoWrit()

Mas..... estou salvando no MySQL.
Já conferi os caracteres, e não tem nenhum especial.

Código: Selecionar todos

REQUEST HB_CODEPAGE_PTISO

PROCEDURE Main

   LOCAL x, cLetra, aList, aItem

   aList := Directory( "d:\fontes\integra\resource\*.*" )

   FOR EACH aItem IN aList
      ? aItem[1]
      x := hb_Base64Encode( "d:\fontes\integra\resource\" + aItem[1] )
      FOR EACH cLetra IN x
         DO CASE
         CASE Asc( cLetra ) >= Asc( "A" ) .AND. Asc( cLetra ) <= Asc( "Z" )
         CASE Asc( cLetra ) >= Asc( "a" ) .AND. Asc( cLetra ) <= Asc( "z" )
         CASE cLetra $ "0123456789"
         CASE cLetra == "+"
         CASE cLetra == "/"
         CASE cLetra == "="
         OTHERWISE
            ? cLetra, Asc( cLetra ), cLetra:__EnumIndex, Substr( x, cLetra:__EnumIndex - 20, 50 )
        ENDCASE
      NEXT
   NEXT
   Inkey(0)
Conferi fui tudo que é resource, só mesmo +/= de diferentes, mas no MySQL são normais.

Se eu passo pra função usando #pragma no fonte ok
Se eu passo usando hb_base64Decode( cTxt ), harupdf não se dá com ela
Se eu passo usando MemoRead( "imagem.jpg" ) tudo bem também

Salvo usando hb_base64Encode(), pego de volta usando hb_base64Decode()
Salvando no disco mostra a imagem, o que aparentemente seria equivalente ao MemoRead() que foi feito.

A não ser que..... vou testar um Inkey(2) ou algo assim após pegar do MySQL... vai saber...
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/
Responder