Improve OSX screenshot performance by immediately screenshot given region #82
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
I was using pyautogui which is using this module and I noticed that on my 4K monitor it took a long time for a small region to be captured, especially my script, which takes multiple screenshots in a row. The performance decrease really stacks up here. This was because the whole screen was captured and then cropped, rather than an immediate screenshot of the given region.
Here's the improvement on my 4K monitor:
Full screen capture:
Screenshot region at (100, 100) with a width/height of 500/400:
As you see, the original implementation would take 0.22s while the new implementation can take ±0.05s, roughly 4 times faster.
It is also a lot smaller when screenshotting specific regions:
P.s. I also noticed your
# TODO - use tmp name for this file.
comment, which I also resolved.