Tôi muốn viết một tập lệnh để lấy một tập tin hình ảnh, chia tỷ lệ 50% và đặt nó vào bảng tạm để có thể dán dễ dàng. Cái tôi bị mắc kẹt là làm thế nào để đặt một hình ảnh vào clipboard.
Tôi biết về xclip, nhưng AFAICS chỉ liên quan đến văn bản. Có thể có một hình ảnh trên clipboard mà không có ứng dụng tạo ra nó ngồi xung quanh? - Xin lỗi tôi không chắc chắn về cách thức hoạt động của clipboard!
CHỈNH SỬA
Nhờ câu trả lời của Florian bên dưới, tôi đã có thể đạt được điều mình muốn, đó là chụp ảnh màn hình và tự động phóng to nó lên tối đa 600px (ví dụ để dán vào email). Vấn đề tiếp theo tôi gặp phải là Thunderbird sẽ không chấp nhận image/png
từ bảng tạm. Tôi đã làm tròn điều này bằng cách chuyển đổi nó thành text/html
một data
url. Đây là mã của tôi trong trường hợp bất cứ ai thấy nó hữu ích:
#!/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"