Saya ingin menulis skrip untuk mengambil file gambar, skala 50% dan letakkan di clipboard sehingga dapat disisipkan dengan mudah. Bit yang saya terjebak adalah bagaimana menempatkan gambar di clipboard.
Saya tahu tentang xclip, tetapi AFAICS hanya berurusan dengan teks. Apakah mungkin untuk memiliki gambar di clipboard tanpa aplikasi yang membuatnya duduk? - Maaf saya tidak yakin dengan internal tentang 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 maksimum 600px lebar (misalnya untuk menempelkan ke email). Masalah selanjutnya yang saya hadapi adalah bahwa Thunderbird tidak akan menerima image/png
dari clipboard. Saya menyelesaikan ini dengan mengonversinya menjadi text/html
dengan data
url. Ini kode saya kalau-kalau ada yang merasa 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"
sumber
Jawaban:
Gunakan
-t
opsi untuk menentukan jenis konten, sepertisumber
-t
tidak berfungsi pada versi xclip saya 0.12xclip -selection clipboard -t image/png -o > example.png