user985675 Asked: 2021-09-27 11:27:06 +0800 CST2021-09-27 11:27:06 +0800 CST 2021-09-27 11:27:06 +0800 CST ImageMagick 显示 WxH+x+y 窗口 772 在 ImageMagick 的显示中,如果我按“c”并开始拖动裁剪框,左上方会出现一个小框,显示裁剪框的 WxH+x+y。 除了截取屏幕截图并在图像上运行 tesseract-ocr 等之外,还有什么方法可以在 bash 中以编程方式访问数据? bash imagemagick 1 个回答 Voted Best Answer meuh 2021-09-28T01:28:19+08:002021-09-28T01:28:19+08:00 如果您使用的是 X11,则写入框中的文本是使用通过套接字连接发送到 X11 服务器的图形命令完成的。可以通过插入实用程序来检查这些命令xscope。例如, xscope -v1 -i1 将开始监听连接到显示:1( -i1) 并打印到标准输出 (在详细级别 1) 接收到的 X11 命令在将它们发送到真实显示器之前,大概是:0. 因此,您可以简单地运行DISPLAY=:1 display my.jpg或类似并查看此输出,通常是: ............REQUEST: PolyText8 drawable: DWB 02e002f3 gc: GXC 02e00099 x: 11 y: 18 items: delta: 0 text item 8 string: " 53x48+310+109" 一个简单的sed脚本可以提取此文本项以进行进一步处理: xscope -v1 -i1 | sed -n '/text item 8 string: " /{s///;s/"//p}' 做类似工作的替代程序x11trace有时称为xtrace. x11trace -D:1 产生像这样的输出 000:<:14fa: 32: Request(74): PolyText8 drawable=0x02e002f3 gc=0x02e00099 x=11 y=18 texts={delta=0 s=' 26x38+425+297'}; 可以用 sed -n "/PolyText8 /{s/.*s='//;s/'.*//p}"
如果您使用的是 X11,则写入框中的文本是使用通过套接字连接发送到 X11 服务器的图形命令完成的。可以通过插入实用程序来检查这些命令
xscope
。例如,将开始监听连接到显示
:1
(-i1
) 并打印到标准输出 (在详细级别 1) 接收到的 X11 命令在将它们发送到真实显示器之前,大概是:0
. 因此,您可以简单地运行DISPLAY=:1 display my.jpg
或类似并查看此输出,通常是:一个简单的
sed
脚本可以提取此文本项以进行进一步处理:做类似工作的替代程序
x11trace
有时称为xtrace
.产生像这样的输出
可以用