截图脚本总结说明

新手涉及到的教学或入门贴,推荐新手必看,版主维护
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

截图脚本总结说明

#1

帖子 eexpress » 2008-05-22 13:01

建议大家不要老想开一个gui软件去截图。用lin的思维来操作截图动作。下面的脚本里,其实多数作用,就是关键的一两行。可以依照喜好,随便修改,调整。设置热键的方式,不同的wm不同。在此不说明了。不喜欢热键的,面板作一个启动器就是。

1。截图并自动保存。选择窗口(点窗口),方块(拖放鼠标框选),桌面(点桌面),都是由鼠标的操作自动定的。你可以为这脚本,设置一个热键。我这里是用Super+i

最近的版本

代码: 全选

☎  dog import-截图 
NOW=`date '+%Y-%m-%d-%H-%M-%S'` 
if [ -z $2 ]; then
FNAME=screenshot-${NOW}
else
FNAME="[$2]-${NOW}"
fi
EXT=png 
SCRDIR=${HOME}/下载/ 
if [ ! -d "${SCRDIR}" ]; then 
   mkdir -p "${SCRDIR}" 
fi 
if [ -z $1 ]; then
cmd="import -frame ${SCRDIR}${FNAME}.${EXT}"
else
cmd="import -frame -window $1 ${SCRDIR}${FNAME}.${EXT}"
fi
eval $cmd
echo ${SCRDIR}${FNAME}.${EXT}
2。截图并贴图(贴到paste.ubuntu.org.cn)。贴图的结果,在响声提示后,会自动放入剪贴板,直接用鼠标中键就粘贴给别人看。我是绑定到Super+p

脚本有2种软件的实现,其中import对于透明和边框不支持。

[/code]
以前的版本

代码: 全选

☎  cat p-p截图并贴图.bash 
#!/bin/bash

#f=`/home/exp/应用/脚本/import-截图`
#[ -z $f ] && exit;
#/home/exp/应用/脚本/paste-pic.perl $f
#rm $f

cd /home/exp/下载
sleep 2
scrot -sb -e '/home/exp/应用/脚本/paste-pic.perl $f;rm $f'
内部调用的贴图脚本。大家自己修改名字和声音文件路径。需要安装libwww-mechanize-perl 来支持
最近的版本,就增加了同时发鼠标选择的文字而已。

代码: 全选

☎  dog paste-pic.pl 
use utf8;
use strict;
use WWW::Mechanize;
my $poster="eexp";
my $paste_url = 'http://paste.ubuntu.org.cn/';
my $mech = WWW::Mechanize->new();
$mech -> get("$paste_url");
$mech -> submit_form(
    fields => { 
        "screenshot" => $ARGV[0],
        "code2" => join("\n",`xsel -o`),
        "poster" => $poster
    } ,
    form_name => "editor" ,
    button => "paste"
);
if ($mech->success()) {
        my $rr=$mech->uri();
    print "贴图地址: $rr 。\n";
    `echo $rr|xsel -i`;
    `/home/exp/应用/脚本/msg eog-48.png 贴图地址 $rr`;
} else {
    `/home/exp/应用/脚本/msg 贴图 失败`;
    print "ERROR:\t".$mech->status()."\n";
}

使用到的提示脚本。不需要gui提示的话,就注销掉提示的那2行。不建议使用了,需要perl的模块,要到CPAN下载。
[code]☎  cat tooltip.pl 
#!/usr/bin/perl

use strict;
use warnings;
use Glib qw(TRUE FALSE);
use Gtk2 -init;
use Gtk2::Sexy;
use encoding 'utf8';

my $tooltip = Gtk2::Sexy::Tooltip->new;
#my $tp = Gtk2::Sexy::Tooltip->new_with_label ("tip");

my $hbox = Gtk2::HBox->new(FALSE, 5);
$hbox->show;
$tooltip->add($hbox);

#my $image = Gtk2::Image->new_from_stock('gtk-dialog-authentication', 'dialog');
my $image = Gtk2::Image->new_from_file('/home/exp/媒体/d.png');
$image->show;
#$hbox->pack_start($image, FALSE, FALSE, 0);
$hbox->pack_start_defaults($image);

my $label = Gtk2::Label->new;
#$label->set_markup( "正在下载 <span size=\"large\" color=\"red\" weight=\"bold\">". $ARGV[0]. "</span>" );
$label->set_markup( $ARGV[0] );
$label->show;
#$hbox->pack_start($label, TRUE, TRUE, 0);
$hbox->pack_start_defaults($label);

$tooltip->show;
#$tp->show;
eval {
alarm(2);
Gtk2->main;
alarm(0);
}
第2种提示的脚本,使用libnotify的。

代码: 全选

☎  cat msg
#!/bin/bash

#export DISPLAY=:0 && notify-send -u critical -h string:"sound-file":"/home/exp/媒体/◇事件声音-et/Auf-wiedersehen.wav" -i '/home/exp/媒体/48-png/48-clock_s.png'  "计划任务提醒" "<span size='24000' color='red' weight='bold'>"""$*"""</span>"
export DISPLAY=:0 && notify-send -u critical -t 31000 -i '/home/exp/媒体/●图标/48-png/Rss-48.png'  "计划任务提醒" "<span size='12000' color='red' weight='bold'>"""$*"""</span>"
aplay '/home/exp/媒体/◇事件声音-et/g2ipmsg.wav'
#ee_tip -text "<span size='24000' color='red' weight='bold'>"""$*"""</span>" -image ~/媒体/d.png -timeout 60
#export DISPLAY=:0 && ee_tip -text "<span size='24000' color='red' weight='bold'>"""$*"""</span>" -image ~/媒体/d.png -timeout 60
#export DISPLAY=:0 && tooltip.pl """$*""" &
#export DISPLAY=:0 && zenity --info --title="计划任务" --text="""$*""" &
第3种脚本,使用gnome-osd显示的。安装gnome-osd。

代码: 全选

☎  cat osd
#!/bin/bash

gnome-osd-client -f "<message id='myplugin' osd_fake_translucent_bg='on'>$*</message>"
#gnome-osd-client -f "<message id='myplugin' osd_fake_translucent_bg='on' osd_vposition='top' animations='on' hide_timeout='5000' osd_halignment='right'>"$*"</message>"
-----------------------------------
改动点点的。

代码: 全选

☎ dog p-p截图并贴图.bash
cd /home/exp/下载
sleep 1
if [ -z $1 ]; then
scrot -sb -e '/home/exp/应用/脚本/paste-pic.perl $f;rm $f'
else
scrot -sb -e '/home/exp/应用/脚本/paste-pic-imageshack.perl $f;rm $f'
fi

☎ dog p-p截图并贴图.bash 
cd /home/exp/下载
f=`/home/exp/应用/脚本/import-截图`
[ -z $f ] && exit;
/home/exp/应用/脚本/paste-pic.pl $f; rm $f

FVWM 的设置:

代码: 全选

Key i A 4 Exec import-截图
Key i A 4 Exec scrot.bash
Key p A 4 Exec p-p截图并贴图.bash
Key u A 4 Exec p-p截图并贴图.bash 1
使用compiz的,可以使用下面的方法,看图。
compiz截屏贴图.png
上次由 eexpress 在 2008-05-22 13:36,总共编辑 1 次。
● 鸣学
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 solcomo » 2008-05-22 13:05

ee能不能让recordmydesktop支持鼠标选取呢? :P
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#3

帖子 eexpress » 2008-05-22 13:08

gtk-recordMyDesktop
曾经自己笨到写了一个脚本去鼠标选择区域录像的。
● 鸣学
头像
qiang_liu8183
论坛版主
帖子: 10691
注册时间: 2006-09-10 22:36
来自: 北京
送出感谢: 2 次
接收感谢: 6 次

#4

帖子 qiang_liu8183 » 2008-05-22 13:09

:D
看破、放下、自在、随缘、念佛
真诚、清净、平等、正觉、慈悲
头像
内存不足
论坛版主
帖子: 3277
注册时间: 2005-08-18 18:43
送出感谢: 0
接收感谢: 1 次
联系:

#5

帖子 内存不足 » 2008-05-22 13:28

需要依赖什么软件都不说 没良心的 :D
໌→ iCookie Gtk Theme
໌→DropPlusBluetheme
กรัก กรัก`菠萝
头像
solcomo
帖子: 2838
注册时间: 2007-04-25 13:12
送出感谢: 0
接收感谢: 0
联系:

#6

帖子 solcomo » 2008-05-22 13:29

eexpress 写了:gtk-recordMyDesktop
曾经自己笨到写了一个脚本去鼠标选择区域录像的。
我只是想用lin的思维来操作屏幕录像 :D
至于你以前的那个脚本我改了一下..并做了一个启动器..

代码: 全选

#!/bin/bash
if [ ! -s /tmp/rMD-session-* ] ; then
	xwininfo >/tmp/recordmydesktop.tmp
	id=`grep id: /tmp/recordmydesktop.tmp | awk -F" " '{printf $4}'`;
	NOW=`date '+%Y-%m-%d-%H-%M-%S'` 
	recordmydesktop -windowid "$id" -o ~/${NOW}.ogg
else
	killall recordmydesktop 
fi
看来要支持鼠标选取必须自己改源码了
♜♞♝♛♚♝♞♜
♟♟♟♟♟♟♟♟
♙♙♙♙♙♙♙♙
♖♘♗♕♔♗♘♖

☠☯⚔⚓☣☦☃☕
☹☻☪☭☬⚖⚛⚜
ℜℳℬ™ ℋℯℓ℘ ℳℭ
sƂɐʍ рǀɹoʍ əɥʇ oS
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙
送出感谢: 4 次
接收感谢: 256 次

#7

帖子 eexpress » 2008-05-22 13:37

别哦。那丑陋的脚本别用了。用现成的gtk的吧。

内存不足只是少了2个perl的说明嘛。补上了。
● 鸣学
头像
xjj
帖子: 156
注册时间: 2006-10-22 20:49
送出感谢: 0
接收感谢: 1 次

#8

帖子 xjj » 2008-05-23 17:32

呵呵,留印,那么多代码,慢慢试!
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#9

帖子 bones7456 » 2008-05-23 20:24

只用compiz截图的飘过。。。
关注我的blog: ε==3
头像
hethe
帖子: 3666
注册时间: 2005-08-01 9:14
送出感谢: 0
接收感谢: 0

#10

帖子 hethe » 2008-05-23 22:04

ee以前那个import的截图脚本和compiz似乎有冲突,后来我也用compiz自带的了
Gedanken ohne Inhalt sind leer .Anschauungen ohne Begriffe sind blind.
头像
hihi_
帖子: 26
注册时间: 2008-05-26 14:23
来自:
送出感谢: 0
接收感谢: 0

#11

帖子 hihi_ » 2008-05-27 22:21

学习了,一直用的scrot
Linux. Choice of GNU generation.
[hihi~@linux:~]$ Linux 2.6.24-19-generic #1 SMP Wed Jun 4 16:35:01 UTC 2008 i686 GNU/Linux
GNU/Linux for ever.
头像
gamespy
帖子: 126
注册时间: 2007-02-22 18:20
送出感谢: 0
接收感谢: 0
联系:

#12

帖子 gamespy » 2008-07-20 12:22

完全不懂
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
送出感谢: 0
接收感谢: 3 次
联系:

#13

帖子 xiooli » 2008-07-20 12:36

按个printscreen会很费事么?
一旧云
帖子: 4
注册时间: 2008-07-25 21:11
送出感谢: 0
接收感谢: 0

#14

帖子 一旧云 » 2008-08-12 2:15

我是用键盘上的Prtscnsysrq来截图的~~~~~~~~~~
头像
zhexuezhuzi
帖子: 884
注册时间: 2008-01-23 14:02
来自: 吉林大学
送出感谢: 0
接收感谢: 0
联系:

#15

帖子 zhexuezhuzi » 2008-08-17 15:59



解压双击 似乎很方便 有点像qq截图
附件
screenshot.desktop.tar.gz
(821 Bytes) 下载 198 次
回复

回到 “教学和常见问答”