Re: BT_BitmapSaveFile
Posted: Sun Nov 03, 2013 2:14 am
Andrés, espero que éste ejemplo te sirva de ayuda:
Code: Select all
#include "hmg.ch"
#include "hfcl.ch"
FUNCTION MAIN
PRIVATE cFileName := "BosTaurus_logo.JPG"
DEFINE WINDOW Win1;
AT 0,0 ;
WIDTH 600 ;
HEIGHT 650 ;
MAIN;
TITLE "Click on the picture";
ON INIT Proc_ON_INIT ();
ON RELEASE Proc_ON_RELEASE()
@ 5, 50 IMAGE Image1 PICTURE "" ACTION Proc_ON_CLICK()
END WINDOW
CENTER WINDOW Win1
ACTIVATE WINDOW Win1
RETURN NIL
PROCEDURE Proc_ON_INIT
LOCAL hBitmap := 0
hBitmap := BT_BitmapLoadFile (cFileName)
BT_HMGSetImage ("Win1", "Image1", hBitmap)
RETURN
PROCEDURE Proc_ON_CLICK
LOCAL hDC, BTstruct
LOCAL hBitmap
LOCAL nRow := 0
LOCAL nCol := 0
#define OFFSET 40
GetCursorPos (@nCol, @nRow)
ScreenToClient (Win1.Image1.HANDLE, @nCol, @nRow)
hBitmap := BT_HMGGetImage ("Win1", "Image1")
hDC := BT_CreateDC (hBitmap, BT_HDC_BITMAP, @BTstruct)
BT_DrawEllipse (hDC, nRow-OFFSET/2, nCol-OFFSET/2, OFFSET, OFFSET, RED, 3) // Draw in image
// BT_Draw... () // Others draw functions
BT_DeleteDC (BTstruct)
BT_ClientAreaInvalidateAll (Win1.Image1.HANDLE)
RETURN
PROCEDURE Proc_ON_RELEASE
LOCAL hBitmap
hBitmap := BT_HMGGetImage ("Win1", "Image1")
BT_BitmapSaveFile (hBitmap, "Image_33.png", BT_FILEFORMAT_PNG)
BT_BitmapRelease (hBitmap)
RETURN