注意:实际问题请参见底部
有一款很棒的 Windows 截图工具叫做肖蒂。它保留了屏幕截图中的半透明和阴影效果。例如:
然而,Ubuntu 内置实用程序的屏幕截图并没有保留这些效果,相比之下看起来相当糟糕:
那么,是否有一个适用于 Ubuntu 的截图实用程序可以像 Shotty 一样保留“视觉享受”?
答案1
我认为 Linux 中的显示服务器和窗口合成器交互方式不可能实现这一点(与 Windows 不同,Windows 中两者的耦合要紧密得多)。但是,您可以对图像进行后处理,以添加类似于窗口合成器添加的阴影。
找到合适的阴影滤镜
我发现并玩了一下ImageMagick 的-shadow
过滤器并且接近以下参数:
convert :input.png \( +clone -background black -shadow 50x5+2+2 \) +swap -background none -layers merge +repage :output.png
作为奖励,阴影使用透明度来处理支持透明度的图像格式,例如 PNG(32 位色深)。问题中的示例结果如下:
您可以在以下位置找到有关阴影滤镜的更深入解释ImageMagick 使用示例。
将滤镜与截图工具结合使用
我们可以编写一个小脚本,将上述过滤器与屏幕截图工具结合起来,如下所示gnome-screenshot
:
#!/bin/bash
printf -v filename '%s/screenshot %(%F %T)T.png' "$HOME" -1
tmpfile="$(exec mktemp --tmpdir --suffix=.png screenshot.XXXXXXXXXX)"
trap 'rm -f -- "$tmpfile"' EXIT
gnome-screenshot "$@" -f "$tmpfile"
convert ":$tmpfile" \( +clone -background black -shadow 50x5+2+2 \) +swap -background none -layers merge +repage ":$filename"
…或者使用已有的内容
GNOME 开发人员似乎也有类似的想法,并将阴影过滤器集成到他们的屏幕截图工具中:
gnome-screenshot --window --border-effect=shadow
这产生了与上面几乎相同的视觉效果:
您可以取消绑定屏幕截图的默认键盘快捷键,并为类似上述的自定义命令创建相同的快捷键。
有关详细信息,请参阅gnome-screenshot(1)
。