読者です 読者をやめる 読者になる 読者になる

どせいたんさき。

ナスダヨー

クリップボードにコピーした画像をコマンドラインからファイルに吐き出す: PasteImg

目的

たとえば gnuplot などで作成したプロットをブログに貼り付けたい.ターミナルを設定して直接画像に出力してもいいけど,画面上の表示と画像ファイルに出力したときの表示は微妙に違ったりするので,また微調製が必要になったりする.できれば画面に出力されたままの状態でキャプチャしてしまいたい.

スクリーンショットを使うのはひとつの解決方法である.領域を指定してスクリーンショットをとれば目的は達成できる.ただし,この方法だと大抵の場合は切り取る領域をマウスで指定する必要がある.そのため画像ファイルの大きさに再現性を求めることが難しい.似たようなプロットを何枚も画像にしたいときには,この方法はあまり望ましくない.

下の画像は gnuplot で適当なプロットを wxt ターミナルに作成したときのウィンドウをキャプチャしたものである.赤い矢印で示したボタンは表示されたプロットを画像にしてクリップボードにコピーする機能を持っている.適当なグラフィックエディタを立ちあげればクリップボードの画像をファイルに保存することができる.しかし,いちいちグラフィックエディタを立ち上げるのは面倒である.もっと手軽にクリップボードにコピーされた画像をファイルに保存したい.

f:id:xr0038:20140815170441j:plain

解決方法

検索したら PasteImg というスクリプトを見つけた.クリップボードにコピーされた画像をコマンドラインでファイルに保存することができる.現時点では png 画像にしか対応していないらしいが,目的を満たすための機能を十分に備えている.

git を経由して導入した.

git clone https://github.com/cas--/PasteImg.git
sudo ln -s ${PWD}/pasteimg /usr/local/bin

使い方は以下のとおり.

## クリップボードに画像がコピーしてある状態で
pasteimg filename.png

PasteImgpython を利用しており,以下のモジュールを import している.

import pygtk
import gtk
import os
import sys
import random
import argparse

PasteImg を利用して切り出した画像は以下のとおり.

f:id:xr0038:20140815172036p:plain