कमांड-लाइन से क्लिपबोर्ड पर छवि की प्रतिलिपि बनाएँ


22

क्या क्लिपबोर्ड में किसी चित्र को कॉपी करने के लिए बैश में एक तरीका है?

उदाहरण के लिए अगर कोई चित्र है, तो mypic.pngमैं चाहता हूं कि उसके पास एक कमांड हो, clipcopy mypic.pngजैसे कि मैं उदाहरण के लिए ऑक्सस्केप जा सकता हूं और बाद में पेस्ट कर सकता हूं।


इसे दो चरणों में तोड़ा जाना चाहिए: 1. क्लिपबोर्ड पर इंकस्केप के क्या डेटा की उम्मीद है? जैसे फ़ाइल सामग्री या फ़ाइल पथ। मुझे लगता है कि सामग्री तुच्छ है क्योंकि पथ तुच्छ है xsel -b? 2. क्लिपबोर्ड पर उस डेटा को कैसे प्राप्त करें।
सिरो सेंटिल्ली 新疆 改造 iro i 事件 ''

की संभावित क्रॉस साइट डुप्लिकेट: superuser.com/questions/301851/…
Ciro Santilli 中心::::

किसी भी फ़ाइल प्रकार के लिए अधिक सामान्य प्रश्न: superuser.com/questions/796376/…
Ciro Santilli 中心 file file file 六四

यदि आपके पास ImageMagick स्थापित है, तो मेरा मानना ​​है कि कमांड convert ... clipboard:(... आपके फ़ाइलनाम सहित अन्य तर्क हैं)।
मृत्युंजय

जवाबों:


9

यह अजगर स्क्रिप्ट द्वारा cheshirekow दावों आप क्या चाहते हैं क्या करना है।

#! /usr/bin/python
import pygtk
pygtk.require('2.0')
import gtk
import os
import sys

def copy_image(f):
    assert os.path.exists(f), "file does not exist"
    image = gtk.gdk.pixbuf_new_from_file(f)

    clipboard = gtk.clipboard_get()
    clipboard.set_image(image)
    clipboard.store()

copy_image(sys.argv[1]);

धन्यवाद, यह libreoffice में चिपकाने का काम करता है, हालाँकि inkscape में चिपकना नहीं है।
छात्र

एक अच्छा, यह xournal में चिपकाने के साथ अच्छी तरह से काम करता है।
कीवन

9

इसके लिए आप CopyQ का उपयोग कर सकते हैं । वेबसाइट से:

उन्नत सुविधाओं के साथ क्लिपबोर्ड प्रबंधक

  • CopyQ खोज योग्य और संपादन योग्य इतिहास के साथ क्लिपबोर्ड प्रबंधक है।
  • लिनक्स और विंडोज का समर्थन करता है।
  • OS X 10.9+ के लिए प्रायोगिक समर्थन।
  • पाठ, HTML, चित्र और किसी भी अन्य कस्टम प्रारूप को संग्रहीत करें।
  • उन्नत कमांड-लाइन इंटरफ़ेस और स्क्रिप्टिंग।

एक छवि की प्रतिलिपि बनाने के लिए (आपको MIME प्रकार को इंगित करने की आवश्यकता है):

copyq write image/png - < file.png && copyq select 0

डेटा फ़ाइल की प्रतिलिपि बनाने के लिए (आपको MIME प्रकार इंगित करना होगा):

copyq write application/pdf - < file.pdf && copyq select 0

अधिक दस्तावेज़ीकरण और उपयोग के उदाहरणों के लिए उनकी विकि की जाँच करें ।

यह भी देखें:


Png के उपयोग से आपका पहला विकल्प बढ़िया काम करता है! धन्यवाद!
एडेनशॉ

5

मैंने पाइप इनपुट की अनुमति देने के लिए @don_crissti का उत्तर संपादित किया है :

#!/usr/bin/env python

import sys
from gi.repository import Gtk, Gdk, GdkPixbuf

def store(pixbuf):
        clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
        clipboard.set_image(pixbuf)
        clipboard.store()

def copy_image(f):
    image = Gtk.Image.new_from_file(f)
    if image.get_storage_type() == Gtk.ImageType.PIXBUF:
        pixbuf = image.get_pixbuf()
        store(pixbuf)
    else:
        print("Copying failed")

def copy_pixbuf(data):
    loader = GdkPixbuf.PixbufLoader()
    loader.write(data)
    loader.close()
    pixbuf = loader.get_pixbuf()
    store(pixbuf)

if sys.stdin.isatty():
    if len(sys.argv) != 2:
        print("Usage: image-to-clipboard.py image")
    else:
        f = sys.argv[1]
        copy_image(f);
else:
    data = sys.stdin.read()
    copy_pixbuf(data)

5

यहां एक संक्षिप्त बैश स्क्रिप्ट है जो xclipकिसी फ़ाइल को कॉपी करने के लिए उपयोग करता है। के साथ चिपकाने में सक्षम होना चाहिए ctrl-v

#!/bin/bash
command -v xclip >/dev/null 2>&1 || { echo "Need command xclip. Aborting." >&2; exit 1; }
[[ -f "$1" ]] || { echo "Error: Not a file." >&2; exit 1; }
TYPE=$(file -b --mime-type "$1")
xclip -selection clipboard -t "$TYPE" < "$1"

करने के लिए धन्यवाद...


यह कार्यालय में ठीक प्रतियां है, लेकिन xournal में नहीं!
कीवन

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