Ich möchte ein Skript schreiben, um eine Bilddatei aufzunehmen, sie zu 50% zu skalieren und in die Zwischenablage zu kopieren, damit sie einfach eingefügt werden kann. Das, woran ich festhalte, ist, wie man ein Bild in die Zwischenablage legt.
Ich kenne xclip, aber AFAICS, das sich nur mit Text befasst. Ist es möglich, ein Bild in der Zwischenablage zu haben, ohne dass die Anwendung, die es erzeugt hat, herumsteht? - Tut mir leid, ich bin mir nicht sicher, wie die Zwischenablage funktioniert!
BEARBEITEN
Dank der Antwort von Florian unten konnte ich das erreichen, was ich wollte, nämlich einen Screenshot aufzunehmen und ihn automatisch auf eine maximale Breite von 600px zu skalieren (z. B. zum Einfügen in eine E-Mail). Das weitere Problem, mit dem ich konfrontiert war, war, dass Thunderbird nicht image/png
aus der Zwischenablage akzeptiert . Ich habe das umgangen, indem ich es text/html
mit einer data
URL konvertiert habe . Hier ist mein Code für den Fall, dass jemand ihn nützlich findet:
#!/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"