Pertanyaan Bagaimana cara menyalin gambar ke clipboard dari file menggunakan baris perintah?


Saya ingin menulis skrip untuk mengambil file gambar, memperbesarnya 50% dan meletakkannya di clipboard sehingga dapat ditempel dengan mudah. Yang saya taruh adalah bagaimana menempatkan gambar di clipboard.

Saya tahu tentang xclip, tetapi AFAICS yang hanya berhubungan dengan teks. Apakah mungkin untuk memiliki gambar di clipboard tanpa aplikasi yang menghasilkan itu duduk di sekitar? - Maaf saya tidak yakin internal bagaimana cara kerja clipboard!

EDIT

Berkat jawaban Florian di bawah ini saya dapat mencapai apa yang saya inginkan, yaitu mengambil tangkapan layar dan secara otomatis menskalakannya hingga maksimal lebar 600px (misalnya menempel ke email). Masalah lebih lanjut yang saya hadapi adalah bahwa Thunderbird tidak akan menerimanya image/png dari papan klip. Saya mendapatkan ini dengan mengubahnya menjadi text/html dengan data url. Berikut kode saya jika ada yang menganggapnya berguna:

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

14
2018-04-20 19:32


asal




Jawaban:


Menggunakan -t opsi untuk menentukan jenis konten, seperti

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

19
2018-04-20 20:00



-t tidak berfungsi pada xclip saya versi 0.12 - Irfan
@ Power-Inside: Bekerja untuk saya dengan xclip 0,12 pada 16,10 - Florian Diesch
untuk mendapatkan ini bekerja pada 17.10 saya harus melakukan ini: xclip -selection clipboard -t image/png -o > example.png - Anake