如何使用python从屏幕的给定区域获取快照?
以下是我的想法: 1从屏幕上抓拍给定区域,如100100、80、60,并将结果保存为图像 2使用OpenCV python接口处理图像 首先了解python,想知道这是否是一个好的解决方案,具体来说,想知道如何使用python进行快照 谢谢,在苹果的CoreGraphics api中使用CGRectMake非常简单: 这允许您分别定义水平/垂直位置和宽度/高度 代码: 要使用,只需调用以下函数:如何使用python从屏幕的给定区域获取快照?,python,macos,opencv,ocr,Python,Macos,Opencv,Ocr,以下是我的想法: 1从屏幕上抓拍给定区域,如100100、80、60,并将结果保存为图像 2使用OpenCV python接口处理图像 首先了解python,想知道这是否是一个好的解决方案,具体来说,想知道如何使用python进行快照 谢谢,在苹果的CoreGraphics api中使用CGRectMake非常简单: 这允许您分别定义水平/垂直位置和宽度/高度 代码: 要使用,只需调用以下函数: screenshot(path, dpi=72, region=area) *dpi将设置图像输出
screenshot(path, dpi=72, region=area)
*dpi将设置图像输出分辨率;省略全屏捕获的region参数。关于OpenCV部分,我现在没有经常使用它来提供任何东西
#!/usr/bin/python
import Quartz
import LaunchServices
from Cocoa import NSURL
import Quartz.CoreGraphics as CG
def screenshot(path, dpi, region = None):
if region is None:
region = CG.CGRectInfinite
image = CG.CGWindowListCreateImage(
region,
CG.kCGWindowListOptionOnScreenOnly,
CG.kCGNullWindowID,
CG.kCGWindowImageDefault)
url = NSURL.fileURLWithPath_(path)
dest = Quartz.CGImageDestinationCreateWithURL(
url,
LaunchServices.kUTTypePNG, 1, None
)
prop = {
Quartz.kCGImagePropertyDPIWidth: dpi,
Quartz.kCGImagePropertyDPIHeight: dpi,
}
Quartz.CGImageDestinationAddImage(dest, image, prop)
Quartz.CGImageDestinationFinalize(dest)
spec = (0, 0, 800, 600) # x, y, w, h
path = '/path/to/screnshot_region.png' # save path
area = CG.CGRectMake(*spec) # set area to cgrect
screenshot(path, dpi=72, region=area) # call function
screenshot(path, dpi=72, region=area)