FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como gravar uma imagem usando freeimage.dll
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Sat Nov 11, 2006 06:40 PM

Olá,

É possível, usando FREEIMAGE.DLL capturar a imagem que esta em uma determinada janela (dialog/window) e gravá-la no formato .JPG ?

Obrigado,

Rossine.

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Mon Nov 13, 2006 09:01 AM

Rossine,

Please review Class TImage Method SaveImage( cFile, nFormat, nQuality ) source code.

// 0 -> Bmp
// 2 -> Jpg
// 13 -> Png

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Mon Nov 13, 2006 02:00 PM
Olá Antonio, gracias por responder.

O código abaixo não funciona :-)

#include "FiveWin.ch"

FUNCTION MAIN()

    LOCAL oDlg, oImg

    DEFINE DIALOG oDlg SIZE 700, 500

    @ 2, 1 IMAGE oImg FILE "FIVEWIN.BMP" SIZE 200, 200 ADJUST

    @3, 2 say "Texto Teste" color rgb( 255,255,255), rgb(255,0,0)

    @ 0,  1 BUTTON "Save"  ACTION msgstop( iif( oImg:SaveImage( "TESTE", 2 ), "Image saved", "Image not saved. Why ??" ) )
    @ 0,  7 BUTTON "Load"  ACTION msgstop( iif( oImg:LoadImage( , "TESTE.JPG" ), oImg:refresh(), "Image not load" ) )
    @ 0, 13 BUTTON "Print" ACTION PRINT( oImg )

    ACTIVATE DIALOG oDlg CENTERED

    RETURN NIL

STATIC FUNCTION PRINT( oImg )

    LOCAL oPrn

    PRINT oPrn PREVIEW MODAL
        PAGE
            oPrn:SayImage( 0, 0, oImg, oPrn:nHorzRes(), oPrn:nVertRes() )
        ENDPAGE
    ENDPRINT

    RETURN NIL


Na verdade o que preciso é capturar a imagem de uma dialog/window e salvá-la em disco, ou seja, não só o "FIVEWIN.BMP" transformá-lo em "TESTE.JPG" e sim o <FIVEWIN.BMP + SAY "Texto Teste">

Veja abaixo como preciso que salve o TESTE.JPG:



Como fazer isto funcionar ?

Obrigado,

Rossine.
Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Tue Nov 14, 2006 08:23 PM

Olá Pessoal,

Eu realmente estou precisando muito disto. Alguém poderia me ajudar ??

Obrigado,

Rossine.

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 366
Joined: Wed Aug 30, 2006 05:25 PM
Como gravar uma imagem usando freeimage.dll
Posted: Tue Nov 14, 2006 09:20 PM

Rossine:
Aqui va un ejemplo, no lo probe, pero se que funciona.
(Usando FreeImade.DLL)

include "FiveWin.ch"

xcommand DEFINE IMAGE [<oBmp>] ;

      [ &lt;resource: RESOURCE, NAME, RESNAME&gt; &lt;cResName&gt; ] ;
      [ &lt;file: FILE, FILENAME, DISK&gt; &lt;cBmpFile&gt; ] ;
      [ &lt;of: OF, WINDOW, DIALOG&gt; &lt;oWnd&gt; ] ;
=&gt; ;
      &lt;oBmp&gt;:=TImage():Define( &lt;cResName&gt;, &lt;cBmpFile&gt;, &lt;oWnd&gt; )

Procedure Main()
LOCAL oBmp,oDlg

DEFINE DIALOG oDlg FROM 0,0 TO 21,65 TITLE "Test FreeImage"

DEFINE IMAGE oBmp FILE "Test.jpg" OF oDlg

oDlg:bPainted:={|hDC|PalBmpDraw(hDC,0,0,oBmp:hBitmap,,,0)}

ACTIVATE DIALOG oDlg CENTER

MsgInfo( "About to save the image to Test.png ")

oBmp:SaveImage( "Test2.png", 13)

MsgInfo( "Done!" )

RETURN

Saludos

Ruben Fernandez

Gracias y Saludos

Ruben Fernandez - Uruguay

FWH 11.06, Harbour, Borland 5.82
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Tue Nov 14, 2006 09:50 PM
Rossine,
...
    @ 0,  1 BUTTON "Save"  ACTION msgstop( iif( SaveJPG( oImg ), "Image saved", "Image not saved. Why ??" ) ) 
...
function SaveJPG( oImg )

   local hBitmap := oImg:hBitmap
   local lResult := .t.
   
   oImg:hBitmap = WndBitmap( oImg:hWnd )
   lResult = oImg:SaveImage( "TESTE.JPG", 2 )
   DeleteObject( oImg:hBitmap )
   oImg:hBitmap = hBitmap

return lResult
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Wed Nov 15, 2006 01:27 PM

Olá Ruben e Antonio, Gracias pelos exemplos :wink:

Antonio, a função oWnd:SaveToBmp( ".\test.bmp" ) faz o que eu estou precisando, mas gostaria que fosse ".JPG", e usando oWnd:SaveToBmp( ".\test.bmp" ) não consigo abrir o arquivo "TEST.BMP" dentro do paint de windows. Me retorna a mensagem "Este não é um arquivo bitmap válido ou não há suporte para o formato atualmente" Porque ?

Gracias e saludos,

Rossine.

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Wed Nov 15, 2006 04:34 PM

Rossine,

> não consigo abrir o arquivo "TEST.BMP" dentro do paint de windows.

Has probado a abrirlo con otros programas ó a visualizarlo con XP ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Thu Nov 16, 2006 12:21 PM

Olá Antonio,

> Has probado a abrirlo con otros programas...

VB6 e Delphi7, os dois acusaram "Invalid picture"

>... ó a visualizarlo con XP ?

Sim, XP SP1 . Testando tambem com WIN98 + paint ocorre o mesmo erro.

Gracias, saludos,

Rossine.

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Thu Nov 16, 2006 12:28 PM
Rossine,

Este ejemplo funciona correctamente y el bitmap creado se puede abrir con cualquier utilidad:
#include "FiveWin.ch"

FUNCTION Main() 

   LOCAL oWnd 

   DEFINE WINDOW oWnd TITLE "Progress" 

   ACTIVATE WINDOW oWnd ;
      ON CLICK oWnd:SaveToBmp( "test.bmp" )

RETURN NIL

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Fri Nov 17, 2006 10:35 AM
Olá Antonio,

Veja se você consegue abrir a imagem que esta anexa neste arquivo.
Já tentei abrí-la no paint / photopaint / office picture paint e não consigo :-)

http://geocities.yahoo.com.br/qiinformatica2000/TEST.ZIP

Gracias,

Rossine.
Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Fri Nov 17, 2006 01:00 PM

Rossine,

Que build de FWH estás usando ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 344
Joined: Tue Oct 11, 2005 11:33 AM
Como gravar uma imagem usando freeimage.dll
Posted: Fri Nov 17, 2006 01:10 PM

Antonio, fwh 2.7 fevereiro/2006.

Gracias,

Rossine.

Obrigado, Regards, Saludos



Rossine.



Harbour and Harbour++
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Como gravar uma imagem usando freeimage.dll
Posted: Fri Nov 17, 2006 05:01 PM

Rossine,

El ejemplo que te he indicado funciona correctamente con FWH 2.8 y el bitmap es un bitmap estandard. No se que puede estar ocurriéndote.

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion