我想编写一个脚本来拍摄图像文件,将其缩放50%并将其放在剪贴板上,以便可以轻松粘贴。我遇到的问题是如何在剪贴板上放置图像。
我知道xclip,但是AFAICS只处理文本。如果没有生成图像的应用程序停在剪贴板上,是否可以在剪贴板上显示图像?-对不起,我不确定剪贴板的工作原理!
编辑
多亏了以下Florian的回答,我才能实现我想要的目标,即截取屏幕截图并自动将其缩放到最大600px宽(例如,粘贴到电子邮件中)。我面临的另一个问题是Thunderbird无法image/png
从剪贴板接受。我通过将其转换text/html
为data
url 来解决这个问题。如果有人发现它有用,这是我的代码:
#!/bin/bash
TMP=/tmp/screenshot.png
function screenshotfail {
notify-send -u low -i image "Screenshot failed."
exit
}
# Take screenshot
gnome-screenshot -a -b -p -f "$TMP" || screenshotfail
# Ensure it's max 600px wide
mogrify -resize '>600x' "$TMP" || screenshotfail
# optimise the png if optipng is installed.
which optipng >/dev/null && optipng "$TMP"
# Copy to clipboard.
#
# This is what does not work for Thunderbird:
# xclip -selection clipboard -t image/png <"$TMP" || screenshotfail
# But this does:
echo "<img src='data:image/png;base64,"$(base64 -w0 "$TMP")"' />" | \
xclip -selection clipboard -t text/html || screenshotfail
# Remove the temp file.
rm -f "$TMP"
# Notify user.
notify-send -u low -i image "600px screenshot copied to clipboard"
似乎与以下内容重复:unix.stackexchange.com/questions/30093/…–
—
冠军