Page 1 of 1

Salvar a disco graficos de un RC/EXE en tiempo de ejecucion

Posted: Fri May 25, 2007 11:07 am
by JmGarcia
Es decir:
Tengo graficos en un RC, compilo con su pertinente PRGs y una vez todo ello cuando ejecute el programa salvar a disco algunos graficos.

El activex con internet explorer solo admite una URL o un fichero en disco.
Que yo sepa no puedo darle de parametro una variable string de memoria con el contenido del HTML.

Entonces para no tener el directorio de la aplicacion lleno de jpgs, bmps o gifs quiero tenerlos en el RC (es decir en el EXE).
Cuando quiera salvo a disco un HTML y los graficos que le hagan falta, presento la "pagina web" y borro todos esos temporales.

¿ Me he explicado o no ?

Gracias a todos...

Posted: Fri May 25, 2007 11:26 am
by Biel EA6DD
Hola Jose Mª,
quizas te seria mas facil grabar los graficos en un campo memo de una tabla, y recuperarlos cuando te hagan falta.

Code: Select all

//Grabar
CampoMemo:=MemoRead("grafico.jpg")
//Recuperar
MemoWrit("grafico.jpg",CampoMemo)

Espero que te valga como idea.

Posted: Fri May 25, 2007 12:10 pm
by JmGarcia
Biel EA6DD wrote:...quizas te seria mas facil grabar los graficos en un campo memo de una tabla, y recuperarlos cuando te hagan falta...
Ya pero entonces tengo un EXE y un DBF... si me lo borran ya esta el lio.
Es para una pequeña utilidad que pretendo que solo sea un fichero EXE aunque pese 2 o 3 megas.

Saludos.

Posted: Fri May 25, 2007 2:18 pm
by Biel EA6DD
Pues entonces prueba con la clase tImage.
Los siguientes metodos te permiten recuperar desde recurso, y grabara a disco.

LoadImage( cResName, cBmpFile )
SaveImage( cFile, nFormat )

Esto con BMPs en recursos te va a funcionar, para JPG lo dudo.

Si te a servido de ayuda, apuntate q debes un pintxo. :lol: Un abrazo.

Posted: Sat May 26, 2007 11:30 am
by JmGarcia
Biel EA6DD wrote:LoadImage( cResName, cBmpFile )
SaveImage( cFile, nFormat )
Pues he hecho esto:

Code: Select all

oBmp:=TImage():Define("Logo",,)
oBmp:SaveImage("pepe.bmp")
oBmp:End()
¿ Pero hay forma de quitarse del medio la DLL freeimage.dll ?

Posted: Sat May 26, 2007 11:45 am
by Antonio Linares
No se puede porque la Clase TImage necesita FreeImage.dll

Posted: Sat May 26, 2007 10:44 pm
by JmGarcia
Antonio Linares wrote:No se puede porque la Clase TImage necesita FreeImage.dll
Y cuando el objeto oBmp tiene el grafico BMP en memoria (desùes de un load, new o redefine) no habria posibilidad de "leer" esa parte de la memoria.

Algo asi como poder hacer cGraficoBmp:=???????? y despues
Memowrit(cGraficoBmp,"pepe.bmp")
o
h:=fcreate("pepe.bmp",0)
fwrite(h,cGraficoBmp)
fclose(h)

Seria ideal...

¿ La clase TBitmap donde guarda el BMP ?