hi everyone,
thankx for all the inputs and ideas and advice .... iam using the gdiplus ... it's working perfectly fine ... and here is what i have done .. this is the code behind my "Take Snap-Shot" Button :-
THISFORM.COntainer1.Image1.Visible=.F.
*** CLICKING PHOTO NOW ***
DECLARE INTEGER ShellExecute IN shell32.DLL ;
INTEGER hndWin, ;
STRING cAction, ;
STRING cFileName, ;
STRING cParams, ;
STRING cDir, ;
INTEGER nShowWin
CACTION = "open"
CFILENAME=ADDBS(JUSTDRIVE(FULLPATH(SYS(16))))+'Item-Photos\Others\NKRemoteLibTest.EXE'
SHELLEXECUTE(0,CACTION,CFILENAME,"","",1)
***
MESSAGEBOX("DOWNLOADING IMAGE FROM CAMERA ..... ",4096,5000,"Item-Photos")
IMAGEFILES1="C:\NKREMOTE\"
IMAGEFILES2="'"+IMAGEFILES1+"*.*"+"'"
LOCAL ARRAY MYIMAGE[1,1]
ADIR(MYIMAGE,&IMAGEFILES2)
CREATE CURSOR MYIMAGE (FLNM C(150))
APPEND FROM ARRAY MYIMAGE
*** IMAGE RESAMPLING PROCESS ***
DO ADDBS(JUSTDRIVE(FULLPATH(SYS(16))))+'Item-Photos\APPS\SYSTEM.APP'
WITH _SCREEN.SYSTEM.DRAWING
* DIMENSIONS FOR NEW SLIGHTLY SMALLER - IMAGE (ORIGINAL IMAGE SIZE FROM CAMERA IS 2999 x 2000)
LOCAL INWIDTH,INHEIGHT
INWIDTH=599
INHEIGHT=400
* SELECTING THE IMAGE FILE TO CONVERT
LOCAL LOSRCIMAGE AS XFCBITMAP
LOSRCIMAGE=.BITMAP.NEW('C:\NKREMOTE\'+ALLTRIM(MYIMAGE.FLNM))
* CREATING NEW IMAGE IN THE DEFINED DIMENSIONS
LOCAL LORESIZED AS XFCBITMAP
LORESIZED=.BITMAP.NEW(INWIDTH,INHEIGHT,.IMAGING.PIXELFORMAT.FORMAT32BPPARGB)
* SETTING IMAGE RESOLUTION QUALITY SAME AS THE SOURCE
LORESIZED.SETRESOLUTION(LOSRCIMAGE.HORIZONTALRESOLUTION,LOSRCIMAGE.VERTICALRESOLUTION)
* RESAMPLING OF THE NEW IMAGE TO HAVE IT IN HIGH PICTURE QUALITY
LOCAL LOGFX AS XFCGRAPHICS
LOGFX=.GRAPHICS.FROMIMAGE(LORESIZED)
LOGFX.SMOOTHINGMODE=.DRAWING2D.SMOOTHINGMODE.HIGHQUALITY
LOGFX.INTERPOLATIONMODE=.DRAWING2D.INTERPOLATIONMODE.HIGHQUALITYBICUBIC
LOGFX.DRAWIMAGE(LOSRCIMAGE,0,0,INWIDTH,INHEIGHT)
* SAVING THE NEW RESAMPLED IMAGE AS .PNG FILE
RESAMPLED="'"+ADDBS(JUSTDRIVE(FULLPATH(SYS(16))))+'ITEM-PHOTOS\ITEM-PHOTOS\'+ALLTRIM(THISFORM.COntainer1.Text1.VALUE)+".PNG'"
LORESIZED.SAVE(&RESAMPLED,.IMAGING.IMAGEFORMAT.PNG)
* LOADING RESAMPLED image
LOCAL lobmp AS xfcbitmap
m.lobmp = .BITMAP.fromfile(&RESAMPLED)
*** IMAGE CROPING PROCESS ***
LOCAL locropped AS xfcbitmap
* CROP IMAGE WITH DEFINITIONS FROM THE FORM - center position , top position , width & height
m.locropped = m.lobmp.CLONE(.rectangle.new(THISFORM.COntainer1.TEXt4.Value,THISFORM.COntainer1.TXTTOP.Value,THISFORM.COntainer1.TEXt2.Value,THISFORM.COntainer1.TEXt3.Value))
CROPED="'"+ADDBS(JUSTDRIVE(FULLPATH(SYS(16))))+'ITEM-PHOTOS\CROPED-PHOTOS\'+ALLTRIM(THISFORM.COntainer1.Text1.VALUE)+".PNG'"
m.locropped.SAVE(&CROPED, .imaging.imageformat.png)
ENDWITH
*===================================================================================================
MESSAGEBOX("PLEASE WAIT WHILE THE IMAGE IS BEING RESAMPLED & PREPARED FOR DISPLAY ..... ",4096,1750,"Item-Photos")
THISFORM.COntainer1.Image1.PICTURE=&CROPED
THISFORM.COntainer1.Image1.VISIBLE=.T.