分页: 1 / 4

截图脚本总结说明

发表于 : 2008-05-22 13:01
eexpress
建议大家不要老想开一个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

发表于 : 2008-05-22 13:05
solcomo
ee能不能让recordmydesktop支持鼠标选取呢? :P

发表于 : 2008-05-22 13:08
eexpress
gtk-recordMyDesktop
曾经自己笨到写了一个脚本去鼠标选择区域录像的。

发表于 : 2008-05-22 13:09
qiang_liu8183
:D

发表于 : 2008-05-22 13:28
内存不足
需要依赖什么软件都不说 没良心的 :D

发表于 : 2008-05-22 13:29
solcomo
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
看来要支持鼠标选取必须自己改源码了

发表于 : 2008-05-22 13:37
eexpress
别哦。那丑陋的脚本别用了。用现成的gtk的吧。

内存不足只是少了2个perl的说明嘛。补上了。

发表于 : 2008-05-23 17:32
xjj
呵呵,留印,那么多代码,慢慢试!

发表于 : 2008-05-23 20:24
bones7456
只用compiz截图的飘过。。。

发表于 : 2008-05-23 22:04
hethe
ee以前那个import的截图脚本和compiz似乎有冲突,后来我也用compiz自带的了

发表于 : 2008-05-27 22:21
hihi_
学习了,一直用的scrot

发表于 : 2008-07-20 12:22
gamespy
完全不懂

发表于 : 2008-07-20 12:36
xiooli
按个printscreen会很费事么?

发表于 : 2008-08-12 2:15
一旧云
我是用键盘上的Prtscnsysrq来截图的~~~~~~~~~~

发表于 : 2008-08-17 15:59
zhexuezhuzi


解压双击 似乎很方便 有点像qq截图