Como gravar uma imagem usando freeimage.dll
Como gravar uma imagem usando freeimage.dll
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.
É possível, usando FREEIMAGE.DLL capturar a imagem que esta em uma determinada janela (dialog/window) e gravá-la no formato .JPG ?
Obrigado,
Rossine.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Olá Antonio, gracias por responder.
O código abaixo não funciona
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.
O código abaixo não funciona
Code: Select all
#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
Veja abaixo como preciso que salve o TESTE.JPG:
Como fazer isto funcionar ?
Obrigado,
Rossine.
-
- Posts: 366
- Joined: Wed Aug 30, 2006 5:25 pm
- Location: Uruguay
Rossine:
Aqui va un ejemplo, no lo probe, pero se que funciona.
(Usando FreeImade.DLL)
#include "FiveWin.ch"
#xcommand DEFINE IMAGE [<oBmp>] ;
[ <resource: RESOURCE, NAME, RESNAME> <cResName> ] ;
[ <file: FILE, FILENAME, DISK> <cBmpFile> ] ;
[ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
=> ;
<oBmp>:=TImage():Define( <cResName>, <cBmpFile>, <oWnd> )
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
Aqui va un ejemplo, no lo probe, pero se que funciona.
(Usando FreeImade.DLL)
#include "FiveWin.ch"
#xcommand DEFINE IMAGE [<oBmp>] ;
[ <resource: RESOURCE, NAME, RESNAME> <cResName> ] ;
[ <file: FILE, FILENAME, DISK> <cBmpFile> ] ;
[ <of: OF, WINDOW, DIALOG> <oWnd> ] ;
=> ;
<oBmp>:=TImage():Define( <cResName>, <cBmpFile>, <oWnd> )
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
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Rossine,
Code: Select all
...
@ 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
Olá Ruben e Antonio, Gracias pelos exemplos
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.
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.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Rossine,
Este ejemplo funciona correctamente y el bitmap creado se puede abrir con cualquier utilidad:
Este ejemplo funciona correctamente y el bitmap creado se puede abrir con cualquier utilidad:
Code: Select all
#include "FiveWin.ch"
FUNCTION Main()
LOCAL oWnd
DEFINE WINDOW oWnd TITLE "Progress"
ACTIVATE WINDOW oWnd ;
ON CLICK oWnd:SaveToBmp( "test.bmp" )
RETURN NIL
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/qiinforma ... 0/TEST.ZIP
Gracias,
Rossine.
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/qiinforma ... 0/TEST.ZIP
Gracias,
Rossine.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact: