Página 1 de 1

Imagem convertida pra base64

Enviado: 16 Ago 2021 10:06
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?

Imagem convertida pra base64

Enviado: 16 Ago 2021 11:52
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

Imagem convertida pra base64

Enviado: 16 Ago 2021 14:30
por JoséQuintas
oImage := HPDF_LoadJPEGImageFromMem( ::oPDF, cJPEGMem, Len( cJPEGMem ) )

Isso funciona com MemoRead()
Deveria funcionar com hb_base64Decode( cTxt )

Imagem convertida pra base64

Enviado: 16 Ago 2021 18:16
por sygecom
Dica:
Se está usando MemoWrit, então enviar .F. o 3º parâmetro.

ex:
MemoWrit( 'c:\teste.png' , cCONTEUDO_BAS64, .F. )

Imagem convertida pra base64

Enviado: 16 Ago 2021 18:40
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...