Clenilton, bom dia.
Aqui uso a rotina abaixo, é um exemplo pra diminuir o tamanho da imagem, não sei se ajuda.
FUNCTION MAIN()
DIMINUI_IMAGEM_PORT('TESTE.JPG')
RETURN(.T.)
********************************
FUNCTION DIMINUI_IMAGEM_PORT(vARQ)
********************************
Local aArq := {}
Local oImage_tam
Local cFILE_TEMP := GERAFILE()+".jpg" // gera um nome de arquivo temporario
LOCAL P1:=0,PX2:=0,PX1:=0,P2:=0
TRY
fCLOSE(vARQ)
__CopyFile(vARQ,(cFILE_TEMP))
CATCH
ShowMsg('Erro ao tentar redimensionar a imagem, favor revisar as permissão de usuário do Windows')
END
#IfDef __XHARBOUR__
oImage_tam := GDImage():LoadFromFile( cFILE_TEMP )
#else
oImage_tam := GDImage():LoadFromJpeg( cFILE_TEMP )
#endif
p1:=oImage_tam:Width() //800
p2:=oImage_tam:Height() //600
px1:=(p1*10)/100 // fica com apenas 90 porcento da imagem, ou seja tirou apenas 10 porcento
px2:=(p2*10)/100 // fica com apenas 90 porcento da imagem, ou seja tirou apenas 10 porcento
oImage_tam:Resize( px1 , px2 )
oImage_tam:SaveJpeg(cFILE_TEMP)
#IfDef __XHARBOUR__
gdImageDestroy(oImage_tam)
#endif
oImage_tam:=Nil
Return(cFILE_TEMP)
Nota: Tem que anexar ao seu script de compilação as lib GD( libbgd.lib e gdlib.lib) a libbgd.lib é gerada a partir da bgd.dll,
Download bgd.dll from this link:
http://www.boutell.com/gd/http/gdwin32.zipPara gerar a lib a partir da DLL uso assim:
D:\devel\bcc72\bin\impdef -a libbgd.def bgd.dll
D:\devel\bcc72\bin\implib -a libbgd.lib libbgd.def