我正在尝试使用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;
}
您有解决方案吗?