FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Cut out an area of the screen
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Cut out an area of the screen
Posted: Tue Apr 16, 2019 12:49 PM

How can I cut out an area of the screen and save it as a picture in the clipboard ?

Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Cut out an area of the screen
Posted: Tue Apr 16, 2019 01:42 PM

the new Class xImage make this

viewtopic.php?f=3t=36222start=0

&&

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Cut out an area of the screen
Posted: Tue Apr 16, 2019 02:02 PM

Very nice, but I need to use bitblt()

Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Cut out an area of the screen
Posted: Tue Apr 16, 2019 02:04 PM

why ?

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Cut out an area of the screen
Posted: Tue Apr 16, 2019 02:06 PM

I made a TcropImage class and I use bitblt()

https://github.com/silviofalconi/TCropImage

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 195
Joined: Sun Jul 22, 2012 07:01 PM
Re: Cut out an area of the screen
Posted: Wed Apr 17, 2019 02:02 AM

Do you mean taking the screen shot of an screen area within a FWH application itself, or just within a windows desktop in general? If the latter from Windows 7 on Windows has included a utility named Snipping Tool that works reasonably well. It has existed in Windows 10 for a while but it looks like Microsoft is moving the functionality to a tool they have named Snip & Sketch (which I just learned now when I started the Snipping Tool).

Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Cut out an area of the screen
Posted: Wed Apr 17, 2019 05:27 AM

Yes, I mean a screenshot of a part of the screen. I get his device context GetDc() and convert to bitmap (don't remember how to do it)

Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Cut out an area of the screen
Posted: Wed Apr 17, 2019 07:06 AM

can you use HB_CROPPED I use in that class

Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Cut out an area of the screen
Posted: Wed Apr 17, 2019 01:25 PM
can you use HB_CROPPED I use in that class


it's like ? Can example
Posts: 7317
Joined: Thu Oct 18, 2012 07:17 PM
Re: Cut out an area of the screen
Posted: Wed Apr 17, 2019 01:32 PM
see the class I post


Code (fw): Select all Collapse
Function  CutImage(nBoxTop,nBoxLeft,nBoxBottom,nBoxRight)
   local nType:= 2 //jpg
   Local cNameFileCropped:="cropped.jpg"
   Local nWBmp,nHBmp

    oImageCropped:hBitmap:=  CropImage( oImage:hBitmap,nBoxTop,nBoxLeft, nBoxBottom, nBoxRight)
    oImageCropped:SaveImage( cNameFileCropped, nType)
    oImageCropped:LoadBmp( cNameFileCropped )

        nWBmp   := alltrim(str(nBmpWidth( oImageCropped:hBitmap )))
        nHBmp   := alltrim(str(nBmpHeight( oImageCropped:hBitmap ) ))


        oGroupCropped:setText("Image Cropped : Dim. "+nWBmp+"X"+nHBmp )
        oGroupCropped:refresh()




return nil
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)

I use : FiveWin for Harbour March-April 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cut out an area of the screen
Posted: Fri Apr 19, 2019 09:17 PM
Natter wrote:How can I cut out an area of the screen and save it as a picture in the clipboard ?


Code (fw): Select all Collapse
   hBmp  := FWSaveScreen( GetDesktopWindow(), nTop, nLeft, nBottom, nRight )
   DEFINE CLIPBOARD oClp FORMAT BITMAP OF oWnd 
   oClp:Open()
   oClp:SetBitmap( hBmp )
   oClp:Close()
Regards



G. N. Rao.

Hyderabad, India
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Cut out an area of the screen
Posted: Sat Apr 20, 2019 05:51 AM

Thank you, Mr. Rao.
Is it possible to insert the cut fragment at the specified position of the screen ?

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cut out an area of the screen
Posted: Sat Apr 20, 2019 06:11 AM
Natter wrote:Thank you, Mr. Rao.
Is it possible to insert the cut fragment at the specified position of the screen ?

Do you want to replace the desktop wallpaper?
Looks more like an academic question than of any practical application in software.

May I know what exactly you want to achieve?

It is possible to capture the entire desktop (as it appears) as a bitmap, copy a specified portion and paste it another location of the same bitmap and generate a new bitmap. Then if you like, you can replace the desktop wallpaper.
But, there is a catch. When you capture the desktop or any part of it, you also get the icons visible at that time.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Cut out an area of the screen
Posted: Sat Apr 20, 2019 06:50 AM

I drew something on the window - a line, a polygon, etc.. Then I want to erase the painting.

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Cut out an area of the screen
Posted: Sat Apr 20, 2019 06:56 AM
Natter wrote:I drew something on the window - a line, a polygon, etc.. Then I want to erase the painting.

So, you are not talking about the desktop, but FWH application window.
If you let us see your code how are you drawing and displaying the line, polygon, etc, then we can help you how to clear the screen also.
Regards



G. N. Rao.

Hyderabad, India