Come copiare un'immagine negli Appunti da un file usando la riga di comando?


23

Vorrei scrivere uno script per prendere un file di immagine, ridimensionarlo del 50% e inserirlo negli appunti in modo che possa essere incollato facilmente. Il pezzo su cui sono bloccato è come posizionare un'immagine negli Appunti.

Conosco xclip, ma AFAICS che si occupa solo di testo. È possibile avere un'immagine negli Appunti senza l'applicazione che l'ha generata in giro? - Mi dispiace non sono sicuro degli interni di come funzionano gli appunti!

MODIFICARE

Grazie alla seguente risposta di Florian sono stato in grado di ottenere ciò che volevo, ovvero fare uno screenshot e ridimensionarlo automaticamente fino a un massimo di 600 pixel di larghezza (ad esempio per incollarlo in un'e-mail). L'ulteriore problema che ho riscontrato è stato che Thunderbird non accetterà image/pngdagli Appunti. Ho risolto il problema convertendolo in text/htmlcon un dataurl. Ecco il mio codice nel caso qualcuno lo trovi utile:

#!/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"

Risposte:


32

Utilizzare l' -topzione per specificare il tipo di contenuto, ad esempio

xclip -selection clipboard -t image/png -i example.png

-tnon funziona con il mio xclip versione 0.12
Irfan

@ Power-Inside: Funziona per me con xclip 0.12 il 16.10
Florian Diesch,

1
per farlo funzionare il 17.10 ho dovuto farlo:xclip -selection clipboard -t image/png -o > example.png
Anake,

Funziona con xclip versione 0.12 sul mio Ubuntu 16.04.5 LTS
Champ

Funziona solo per ambienti GTK come Gnome, non per ambienti Qt come KDE / plasma o LXQT.
noraj
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.