- (NSMutableArray *)getscreenCapture
{
NSMutableArray *datas = [NSMutableArray array];
//存储所有显示器显示id
CGDirectDisplayID dspyIDArray[10];
uint32_t dspyIDCount = 0;
//获取当前活跃的所有显示器id及其个数
if (CGGetActiveDisplayList(10, dspyIDArray, &dspyIDCount) != kCGErrorSuccess)
return nil;
CFStringRef dspyDestType = CFSTR("public.png");
for(uint32_t i = 0; i < dspyIDCount; i++) {
CGDirectDisplayID mainID = dspyIDArray[i];
// 根据Quartz分配给显示器的id,生成显示器mainID的截图
CGImageRef mainCGImage = CGDisplayCreateImage(mainID);
CFMutableDataRef mainMutData = CFDataCreateMutable(NULL, 0);
CGImageDestinationRef mainDest = CGImageDestinationCreateWithData(mainMutData, dspyDestType, 1, NULL);
CGImageDestinationAddImage(mainDest, mainCGImage, NULL);
CGImageRelease(mainCGImage);
CGImageDestinationFinalize(mainDest);
CFRelease(mainDest);
[datas addObje
Mac OS 截图当前显示器跟外置显示器并转换为NSImage
最新推荐文章于 2025-07-31 15:45:12 发布