Mac:屏幕截图选择实现? (能够选择屏幕的一部分)

Posted

技术标签:

【中文标题】Mac:屏幕截图选择实现? (能够选择屏幕的一部分)【英文标题】:Mac: Screen shot selection implementation? (ability to select part of screen) 【发布时间】:2014-03-05 18:05:08 【问题描述】:

我正在尝试实现类似 Macs Selection 屏幕截图的功能,我可以通过拖动光标来选择屏幕的一部分,并获取结果坐标 (CGRect)。

所以是这样的:

我一直在研究 AVScreenShack,听起来它应该这样做:https://developer.apple.com/library/mac/samplecode/AVScreenShack/Introduction/Intro.html

但它似乎对我不起作用。我最终得到的东西看起来像:

当我尝试设置坐标时,它什么也没做。

我看到这是相关代码,我相信:

- (IBAction)setDisplayAndCropRect:(id)sender
  
for (NSScreen* screen in [NSScreen screens]) 
  
      NSLog(@"SCREEN %@", screen);
    NSRect frame = [screen frame];
    NSWindow * window = [[NSWindow alloc] initWithContentRect:frame styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO];
    [window setBackgroundColor:[NSColor blackColor]];
    [window setAlphaValue:.5];
    [window setLevel:kShadyWindowLevel];
    [window setReleasedWhenClosed:YES];
    DrawMouseBoxView* drawMouseBoxView = [[DrawMouseBoxView alloc] initWithFrame:frame];
    drawMouseBoxView.delegate = self;
    [window setContentView:drawMouseBoxView];
    [window makeKeyAndOrderFront:self];


[[NSCursor crosshairCursor] push];

所以也许它正在做一些我想要的事情(能够选择当前视图上的区域)。

有人做过这样的事吗?我在想一定有一些东西在做类似的事情。

谢谢

【问题讨论】:

您的问题已经解决了吗,或者您还在寻找解决方案? @ThomasJohannesmeyer 是的,它已经解决了。这是这个项目的一部分:github.com/Jonovono/Cutter。 (它实际上是为了让您可以拍摄所选屏幕的视频,而不是屏幕截图。) 您的解决方案是否适用于 2 台以上的显示器?因为即使是 Apple 样本也没有。 我没有尝试过超过 1 台显示器!我会试一试。 我用 3 试过了,没用。 ;-) 【参考方案1】:

我认为这会对你有所帮助。

ScreenSnapshot 示例代码展示了如何执行此操作。检查一下

【讨论】:

这似乎只拍摄全屏快照。我会再研究一下,但我之前找到了这个,我看不到它让我定义屏幕区域的位置。

以上是关于Mac:屏幕截图选择实现? (能够选择屏幕的一部分)的主要内容,如果未能解决你的问题,请参考以下文章

Mac上优秀屏幕截图及管理工具:Screenie

功能齐全的屏幕截图C++实现详解

功能齐全的屏幕截图C++实现详解

可以在打开时截取 <select> 的屏幕截图

mac电脑截屏快捷键

如何从 ionic/cordova/phonegap 中的布局截取屏幕截图?