Merge pull request #692 from go-vgo/bitmap-pr
Some checks are pending
Go / test (macOS-latest) (push) Waiting to run
Go / test (windows-latest) (push) Waiting to run

Fixed: default use high capture resolution in macos15
This commit is contained in:
Evans 2024-10-06 18:12:41 -07:00 committed by GitHub
commit 217d6cf1f1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 6 deletions

View File

@ -11,6 +11,7 @@
package robotgo
import (
"errors"
"image"
"github.com/kbinani/screenshot"
@ -53,9 +54,9 @@ func Capture(args ...int) (*image.RGBA, error) {
// SaveCapture capture screen and save the screenshot to image
func SaveCapture(path string, args ...int) error {
img, err := Capture(args...)
if err != nil {
return err
img := CaptureImg(args...)
if img == nil {
return errors.New("Capture image not found")
}
return Save(img, path)

View File

@ -12,7 +12,6 @@
#include "../base/pubs.h"
#include "../base/rgb.h"
#include "screengrab_c.h"
#include "screen_c.h"
#include <stdio.h>
void padHex(MMRGBHex color, char* hex) {

View File

@ -13,6 +13,7 @@
#elif defined(IS_WINDOWS)
#include <string.h>
#endif
#include "screen_c.h"
#if defined(IS_MACOSX) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > MAC_OS_VERSION_14_4
static CGImageRef capture15(CGDirectDisplayID id, CGRect diIntersectDisplayLocal, CGColorSpaceRef colorSpace) {
@ -39,9 +40,12 @@
SCContentFilter* filter = [[SCContentFilter alloc] initWithDisplay:target excludingWindows:@[]];
SCStreamConfiguration* config = [[SCStreamConfiguration alloc] init];
config.queueDepth = 5;
config.sourceRect = diIntersectDisplayLocal;
config.width = diIntersectDisplayLocal.size.width;
config.height = diIntersectDisplayLocal.size.height;
config.width = diIntersectDisplayLocal.size.width * sys_scale(id);
config.height = diIntersectDisplayLocal.size.height * sys_scale(id);
config.scalesToFit = false;
config.captureResolution = 1;
[SCScreenshotManager captureImageWithFilter:filter
configuration:config