bash에 사진을 클립 보드에 복사하는 방법이 있습니까?
예를 들어 그림이 있으면 잉크 스케이프로 이동하여 나중에 붙여 넣을 수 mypic.png
있는 명령을 원합니다 clipcopy mypic.png
.
답변
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]);
답변
이를 위해 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
더 많은 문서와 사용법 예제 는 위키를 확인하십시오 .
참조 :
답변
파이프 입력을 허용하기 위해 @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)
답변
다음 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"
덕분에 …
답변
/ubuntu//a/759660/187689 에서 답변을 참조하십시오.
xclip -selection clipboard -t image/png -i example.png