명령 줄에서 클립 보드로 이미지 복사


22

bash에 사진을 클립 보드에 복사하는 방법이 있습니까?

예를 들어 그림이 있으면 잉크 스케이프로 이동하여 나중에 붙여 넣을 수 mypic.png있는 명령을 원합니다 clipcopy mypic.png.


이것은 두 단계로 나누어 져야합니다 : 1. 잉크 스케이프가 클립 보드에 어떤 데이터를 기대합니까? 예를 들어 파일 내용 또는 파일 경로. 경로가 사소하기 때문에 내용을 상상 xsel -b합니까? 2. 클립 보드에 데이터를 얻는 방법.
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件


모든 파일 유형에 대한보다 일반적인 질문 : superuser.com/questions/796376/...
치로 틸리新疆改造中心法轮功六四事件

ImageMagick이 설치되어 있다면 명령은 convert ... clipboard:(...은 파일 이름을 포함한 다른 인수 입니다) 믿습니다 .
Deathgrip

답변:


9

cheshirekow 의이 Python 스크립트 는 원하는 것을 수행한다고 주장합니다.

#! /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에 붙여 넣는 데 효과적입니다.
Keivan

9

이를 위해 CopyQ 를 사용할 수 있습니다 . 웹 사이트에서 :

고급 기능을 갖춘 클립 보드 관리자

  • CopyQ는 검색 및 편집 가능한 기록이있는 클립 보드 관리자입니다.
  • Linux 및 Windows를 지원합니다.
  • 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를 사용하는 첫 번째 옵션은 훌륭합니다! 고맙습니다!
Edenshaw

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은 파일을 복사하는 데 사용되는 간단한 bash 스크립트입니다 . 로 붙여 넣을 수 있어야합니다 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에는 복사되지 않습니다!
Keivan

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.