![如何以非交互方式截取预定义区域的屏幕截图并在按键时自动保存?](https://linux22.com/image/1147951/%E5%A6%82%E4%BD%95%E4%BB%A5%E9%9D%9E%E4%BA%A4%E4%BA%92%E6%96%B9%E5%BC%8F%E6%88%AA%E5%8F%96%E9%A2%84%E5%AE%9A%E4%B9%89%E5%8C%BA%E5%9F%9F%E7%9A%84%E5%B1%8F%E5%B9%95%E6%88%AA%E5%9B%BE%E5%B9%B6%E5%9C%A8%E6%8C%89%E9%94%AE%E6%97%B6%E8%87%AA%E5%8A%A8%E4%BF%9D%E5%AD%98%EF%BC%9F.png)
我曾经在 Windows 上使用过“Gadwin 打印屏幕”,只需按下快捷方式,预定义的屏幕区域就会保存到文件夹中(不问任何问题),这在进行长时间的在线课程时非常有用。
我已经切换到 Ubuntu,我需要一个替代方案。我已经安装了 Shutter,并设法创建了一个可以触发“选择”工具并自动保存图片的快捷方式,但问题是我需要重新定位预定义的选择区域(默认情况下位于屏幕的右下角),而 Shutter 不会记住之前的位置,这在我拍摄数百张屏幕截图的使用场景中非常耗时。
答案1
将实现 scrot 和 imagemagick 的脚本绑定到键盘快捷键
1)安装必要的应用程序
从命令行运行:
sudo apt install scrot imagemagick
2)创建脚本
打开您选择的文本编辑器并创建一个包含以下内容的新纯文本文件。请务必修改顶部的变量以指定要保存图像的位置以及要裁剪屏幕的哪一部分。请参阅这个技巧用于获取鼠标坐标,可用于查找left
和top
并计算width
和height
。
#!/bin/bash
# Change these values to match your preferences
imageQuality=100 # scrot default is 75
screenshotDir="/tmp"
imageName="$(date +%Y-%m-%d.%H:%M:%S.%N).jpg" # save image names as timestamp
left=10 # begin crop this number of pixels from the left of the image
top=10 # begin crop this number of pixels from the top of the image
width=100 # crop this many pixels wide
height=100 # crop this many pixels tall
#Do not make any more changes from here down unless you know what you're doing
imagePath="$screenshotDir/$imageName"
scrot -q $imageQuality "$imagePath"
convert "$imagePath" -crop ${width}x${height}+${left}+${top} "$imagePath"
将此脚本保存在任何你喜欢的地方并使其可执行。假设你将脚本命名为screenshot.sh
,你可以在命令行中执行如下操作:
chmod +x /path/to/your/script/screenshot.sh
3)将此脚本绑定到键盘快捷键
按照指示找到这里创建自定义键盘快捷键。当您到达应该输入命令的位置时,请输入screenshot.sh
文件的完整路径(包括文件名)。