web-dev-qa-db-ja.com

画像をクリップボードにコピーして、別のアプリケーションに貼り付ける方法は?

クリップボードをファイルに設定したいabc.jpg、画像形式なので、gpaintなどに貼り付けることができます。X11アプリケーション、できますか?

Compizウィンドウマネージャーで画面スナップショット機能を有効にしました。スナップショットイメージファイルをクリップボードにコピーするコマンドラインを指定する必要があります。

6
Xiè Jìléi

まず、pythonとpygtkをインストールします

Sudo apt-get install python pygtk

次に、次のスクリプトをimgclip.pyとしてどこかに保存します( https://stackoverflow.com/questions/3571855/pasting-image-to-clipboard-in-python-in-linux を参照)

#! /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]);

それを使用するには:

python /path/to/imgclip.py filename.png

注:gimpとxournalでの貼り付けをテストしました。注:これはgnomeデスクトップ用です(したがってgtk)。 kdeにも似たようなものがあるに違いない

9
cheshirekow

xclipをインストールします(0.12では不十分なので、バージョンが0.12 + svn84であることを確認してください)。次に、この行をcompiz設定マネージャーのボックスに追加します。

xclip -selection clipboard -target image/png -i

Example in compiz

その後、他のxアプリケーションに貼り付けることができるはずです。

5
NeverGoodEnough

xclipをチェックしてください。コマンドラインからテキストまたはファイルをクリップボードに移動できます。

[〜#〜]編集[〜#〜]

この投稿で説明されているコマンドラインスクリーンショットアプリがあります: http://www.linux.com/archive/feed/57772scrotを含みます。これはscrotのマニュアルページからのものです。

 scrotは、imlib2ライブラリを使用して
を取得し、画像を保存するスクリーンキャプチャユーティリティです。 scrotにはいくつかのオプションがあります。詳細は以下のとおりです。スクリーンショットを保存するファイル名として
 [file]を指定します。

最後のオプションは、クリックしたときにスクリーンショットを撮るだけのXアプリを見つけ(プロンプトやダイアログボックスなどなし)、それをホットキーの組み合わせに割り当て、xdotoolを使用してコマンドラインからそのキーを押すことをシミュレートすることです。

3
Jeremy

Compizのスクリーンショット機能を無効にします。System-> Preferences-> Keyboard ShortcutsDesktopカテゴリの下)に移動してバインドします Print Screen to Take a Screenshot

enter image description here


今あなたが打つたびに PrintScreen クリップボードにコピーするか、ファイルを保存するかを選択して、再キャプチャが実行されます。

enter image description here

2
Sathyajith Bhat

スクロット+ xclip

scrotxclipを使用してスクリーンショットを撮り、クリップボードにコピーできます。

scrot '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f'

画面全体をキャプチャし、画像をクリップボードにコピーします。現在のウィンドウをキャプチャする場合は、-uフラグを使用します。特定の領域を選択するために、-sフラグを追加できます。その他のオプションについては、$ man scrotを参照してください。

スクリーンショットは/tmpディレクトリに保存されます。そのディレクトリは、保存したい場所ならどこでも変更できます。 /tmpディレクトリのファイルは通常、再起動するたびに削除されます。保存されたファイルをすぐに削除したい場合は、次のようにします。

scrot -w '/tmp/%F_%T_$wx$h.png' -e 'xclip -selection clipboard -target image/png -i $f && rm $f'

他のコメントで読んだように、スクリーンショットをクリップボードにコピーするために必要です。これがあなたの質問に答えることを願っています。

既存の画像ファイルをクリップボードにコピーする必要がある場合:

cat 2018-06-16-224938_670x730_scrot.png | xclip -selection clipboard -target image/png -i

現在のデスクトップ環境/ウィンドウマネージャーに応じて、キーボードショートカット/キーバインドを設定できます。


ボーナス

/tmp/%F_%T_$wx$h.pngの説明:

ファイル名として使用されています。これらはformat specifiersと呼ばれます。それらには、%または$で始まる2つのタイプがあります。

%F%Y-%m-%d(ISO 8601日付形式)に相当します。
 
%T 24時間表記の時間(%H:%M:%S)。 

%F_%T_は次のようなものを出力します:2018-06-17_02:52:19_、つまり現在のタイムスタンプ。要件に応じてフォーマットをカスタマイズできます。詳細については、$ man strftimeを参照してください。

$wx$hは、scrotの内部指定子の一部です。

 $ w画像の幅
 $ h画像の高さ

したがって、最終的なファイル名は2018-06-17_02:52:19_1365x384.pngのようになります。

2
Mandeep Singh