Sign in to follow this  
Followers 0
qwert

Need advice on advanced image capture attempt

4 posts in this topic

This may sound a little far-fetched, but I'm trying to come up with a way to capture an image that's larger that the screen's display size -- for example, when a 1600x1280 image is displayed on a 1280x1024 monitor. Viewing the image requires scrolling, of course, but I'd like to capture the entire image -- including the unseen portion.

I've been working with _ScreenCapture_CaptureWnd and have tried things like scrolling the image leftward and upward and then setting the capture start coordinates to -320 and -256. Interestingly, the resulting captured image is the proper 1600x1280 size, but only the bottom right 80% of the area shows any of the image (the part that was being viewed at the moment of the capture).

I've started to look into Dll Data Structures and direct Dll calls, but before I try anything I was wondering if someone might know: Is it even possible for a DllCall to access the entire image? If so, what are a couple of relevant terms that could be used in MSDN searches?

If the answer is No, then my backup plan is to try capturing the image in four parts and "gluing" it back together -- but I haven't yet looked for appropriate functions.

I will appreciate any help or advice. Thanks.

Share this post


Link to post
Share on other sites



This may sound a little far-fetched, but I'm trying to come up with a way to capture an image that's larger that the screen's display size -- for example, when a 1600x1280 image is displayed on a 1280x1024 monitor. Viewing the image requires scrolling, of course, but I'd like to capture the entire image -- including the unseen portion.

I've been working with _ScreenCapture_CaptureWnd and have tried things like scrolling the image leftward and upward and then setting the capture start coordinates to -320 and -256. Interestingly, the resulting captured image is the proper 1600x1280 size, but only the bottom right 80% of the area shows any of the image (the part that was being viewed at the moment of the capture).

I've started to look into Dll Data Structures and direct Dll calls, but before I try anything I was wondering if someone might know: Is it even possible for a DllCall to access the entire image? If so, what are a couple of relevant terms that could be used in MSDN searches?

If the answer is No, then my backup plan is to try capturing the image in four parts and "gluing" it back together -- but I haven't yet looked for appropriate functions.

I will appreciate any help or advice. Thanks.

If the image is on your hard drive before you view it, you can play with some of the GetDIBit functions on the forum (that was your search term) which will lead you to quite a few options.

The issue with capturing the data and scrolling is that you still cut off the device content at some point, which will still only give you partial data. Being precise I'd imagine is important. So you'll see how to get things like pixel colors etc from memory just by doing an advanced search of the term I described above.


[center]Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer.[/center]

Share this post


Link to post
Share on other sites

If the image is on your hard drive before you view it ...

Thanks for your response. Here's a clarification:

The image only exists on the screen. Although I have several uses in mind, the easiest explanation is to consider the example of photo editing software. If you have an editing tool active on screen and have made some changes to the photo -- and then want an exact image of the result WITH the tool and settings overlaid on the image, capturing the entire screen is the only way to get the "full picture", so to speak.

Share this post


Link to post
Share on other sites

It doesn't matter if the image is a file or if it is in memory, just as long as it is the correct format, you can use GetDIBits. :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0