在macOS Catalina 10.15.5上快速从屏幕获取像素颜色

时间:2020-06-18 08:15:06

标签: macos colors applescript pixel

我正在尝试使用AppleScript从屏幕上获取像素的颜色。

AppleScript中的这些行有效,但速度太慢。

do shell script "screencapture -R340,1240,1,1 -t bmp $TMPDIR/test.bmp && 
              xxd -p -l 3 -s 54 $TMPDIR/test.bmp | 
              sed 's/\\(..\\)\\(..\\)\\(..\\)/\\3\\2\\1/'"

我只需要能够从AppleScript脚本运行某些内容,并在AppleScript脚本的变量中获取颜色。我找到了几种解决方案,但是这些主题确实很老(2010-2011年),他们提出的建议在macOS Catalina上不起作用。

例如,这种使用碳的方法不起作用:

#include <Carbon/Carbon.h>

int main (int argc, const char * argv[]) {
if(argc < 3) {
   printf("Deux arguments ou plus, Syntax : schTrouvePixel <x> <y>\n");
exit(1);
}
int j = (argc - 1) / 2;
int i,n;
unsigned char *addr;

for(i=0; i < j; i++) {
   n = (i * 2) + 1;
   addr = (unsigned char*)CGDisplayAddressForPosition(CGMainDisplayID( ),atoi(argv[n]),atoi(argv[n + 1]));
   printf("%d %d %d\n",addr[2],addr[1],addr[4]);
}
return 0;
}

您有解决方案吗?

0 个答案:

没有答案