是否可以截取圆形选定区域的屏幕截图?

Modified on: Mon, 25 Jun 2018 07:15:53 +0800

当我们在Ubuntu上截取所选区域时(使用 Shift + Prt Scr Ctrl + < kbd> Shift + Prt Scr )我们总是选择一个矩形区域。所以,我知道我可以在像Inkscape这样的软件上编辑图像来创建一个带有矩形图像的圆圈,但是我想知道是否有一个配置我可以改变以便能够选择不同种类的形状我正在拍摄打印屏幕时直接(主要是圈子)。

有可能吗?

作者:,Ramuyko

最佳答案

我为圆形截图设置了一个小脚本,你需要以下软件包(虽然它也适用于其他截图程序和终端模拟器):

sudo apt install xdotool gnome-screenshot imagemagick xterm

脚本

#!/bin/bash

output=~/$(date +%F_%H%M%S).png
temp_screenshot=$(mktemp).png

read -p "Move cursor to center and press Enter"
eval $(xdotool getmouselocation --shell)
x_center=$X
y_center=$Y
read -p "Move cursor to edge and press Enter"
eval $(xdotool getmouselocation --shell)

gnome-screenshot -f $temp_screenshot

radius=$(bc <<<"sqrt(($X-$x_center)^2+($Y-$y_center)^2)")

convert $temp_screenshot -alpha on \( +clone -channel a -evaluate multiply 0 -draw "ellipse $x_center,$y_center $radius,$radius 0,360" \) -compose DstIn -composite -trim "$output"

将其另存为例如~/circular_screenshot.bash并使用chmod +x ~/circular_screenshot.bash使其可执行。当您运行它时,脚本首先要求您将鼠标光标移动到中心位置并按 Enter 然后将其移动到边缘位置(无论哪个,脚本计算半径从远处)再次按 Enter 。拍摄截图时屏幕会闪烁(我建议使用scrot $temp_screenshot,而不是显示这种奇怪的行为。)和ImageMagick的convert 1 < / sup>用于裁剪图像。输出以时间戳作为主目录中的文件名保存,您可以通过编辑脚本的output变量来更改此行为。

示例输出

没有(或更好:使用不可见的)终端窗口

我想你不想在每次制作这样的截图时让终端屏蔽你的屏幕,所以这里有一个解决方案;按如下方式调用脚本(假设脚本保存为~/circular_screenshot.bash):

xterm -geometry 0x0-1-1 -e ~/circular_screenshot.bash

这会在一个不可见的终端窗口(带有红色“X”和蓝色“T”的图标)中运行脚本,只需要在键入 Enter 时确​​保它是焦点。
您可以使用桌面环境的设置将此命令分配给键盘快捷键。

由于ImageMagick非常强大,您可以调整此脚本以输出其他形状,我使用ellipse在x和y方向上具有相同的半径来绘制上面的圆圈 - 将其更改为例如$radius,$(bc &lt;&lt;&lt;"$radius*0.5")来获取偏心率大于0的椭圆。

1:我采用了此主题的方法imagemagick.org

作者:,dessert

相关问答

添加新评论