मैं एक छवि फ़ाइल लेने के लिए एक स्क्रिप्ट लिखना चाहता हूं, इसे 50% स्केल करूं और क्लिपबोर्ड पर रख दूं ताकि इसे आसानी से चिपकाया जा सके। बिट मैं पर अटक गया है कि क्लिपबोर्ड पर एक छवि कैसे रखी जाए।
मुझे xclip का पता है, लेकिन AFAICS जो केवल पाठ से संबंधित है। क्या यह संभव है कि क्लिपबोर्ड पर एक छवि हो जो बिना इसे बनाए बैठे हो? - क्षमा करें, मुझे इस बात का यकीन नहीं है कि क्लिपबोर्ड कैसे काम करता है!
संपादित करें
नीचे फ्लोरियन के उत्तर के लिए धन्यवाद, मैं जो कुछ भी चाहता था उसे हासिल करने में सक्षम था, जो एक स्क्रीनशॉट लेने के लिए था और स्वचालित रूप से इसे अधिकतम 600px चौड़ा (जैसे एक ईमेल में चिपकाने के लिए) के पैमाने पर रखा गया था। आगे जो समस्या आई, वह थी कि थंडरबर्ड image/png
क्लिपबोर्ड से स्वीकार नहीं करेगा । मैंने इसे text/html
एक data
यूआरएल के साथ परिवर्तित करके इसे गोल कर दिया । यदि कोई इसे उपयोगी पाता है तो मेरा कोड यहाँ है:
#!/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"