कमांड लाइन का उपयोग करके किसी फ़ाइल से क्लिपबोर्ड में एक छवि की प्रतिलिपि कैसे करें?


23

मैं एक छवि फ़ाइल लेने के लिए एक स्क्रिप्ट लिखना चाहता हूं, इसे 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"

का एक डुप्लिकेट लगता है: unix.stackexchange.com/questions/30093/…
Champ

जवाबों:


32

-tसामग्री प्रकार निर्दिष्ट करने के लिए विकल्प का उपयोग करें , जैसे

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

-tमेरे xclip संस्करण 0.12 पर काम नहीं करता है
इरफान

@ पॉवर-इनसाइड: मेरे लिए
.१०

1
17.10 पर काम करने के लिए इसे पाने के लिए मैं यह करने के लिए किया था:xclip -selection clipboard -t image/png -o > example.png
Anake

मेरे Ubuntu 16.04.5 LTS पर चैंपियन संस्करण 0.12 के साथ काम करता है
Champ

केवल Gnome जैसे GTK वातावरण के लिए काम करता है, KDE / प्लाज्मा या LXQT जैसे Qt वातावरण के लिए नहीं।
नूरज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.