分页: 1 / 1

[分享]截图脚本

发表于 : 2007-02-03 23:39
yohu
根据坛子里面某位朋友(不好意思忘记是哪位了)的脚本修改的,那位朋友用的import,我修改了一下,用scrot,另外简化了他的一些步骤,让这个脚本更象gnome自带的截图。跟gnome自带的截图比,好处是文件更小,并且我用它直接替代gnome的截图热键。
全屏截图--jpg格式:

代码: 全选

#!/bin/bash
UI="zenity --title="抓图工具""
TIME=`date '+%Y-%m-%d-%H-%M'`
ERROR_FILE="${HOME}/screenshot/error_message.txt"
FILE=`$UI --file-selection --title="选择需要保存抓图文件的位置" --save --filename="${HOME}/screenshot/screenshot-${TIME}.jpg"`
if [ -z $FILE ]; then
        exit;
fi
#清空错误文件
echo > $ERROR_FILE
RESULT=`scrot -q90 "$FILE" 2> $ERROR_FILE`
if [ -s $ERROR_FILE ]; then
        $UI --title="抓图失败!详细错误信息如下:" --text-info --filename=$ERROR_FILE --width="500"
else
        $UI --info --text="抓图成功!文件保存在$FILE。"
fi 
全屏截图--png格式:

代码: 全选

#!/bin/bash
UI="zenity --title="抓图工具""
TIME=`date '+%Y-%m-%d-%H-%M'`
ERROR_FILE="${HOME}/screenshot/error_message.txt"
FILE=`$UI --file-selection --title="选择需要保存抓图文件的位置" --save --filename="${HOME}/screenshot/screenshot-${TIME}.png"`
if [ -z $FILE ]; then
        exit;
fi
#清空错误文件
echo > $ERROR_FILE
RESULT=`scrot -q1 "$FILE" 2> $ERROR_FILE`
if [ -s $ERROR_FILE ]; then
        $UI --title="抓图失败!详细错误信息如下:" --text-info --filename=$ERROR_FILE --width="500"
else
        $UI --info --text="抓图成功!文件保存在$FILE。"
fi 
窗口截图(或者叫选择性截图)jpg格式:

代码: 全选

#!/bin/bash
UI="zenity --title="抓图工具""
TIME=`date '+%Y-%m-%d-%H-%M'`
ERROR_FILE="${HOME}/screenshot/error_message.txt"
FILE=`$UI --file-selection --title="选择需要保存抓图文件的位置" --save --filename="${HOME}/screenshot/screenshot-${TIME}.jpg"`
if [ -z $FILE ]; then
        exit;
fi
#清空错误文件
echo > $ERROR_FILE
RESULT=`scrot -q90 -s "$FILE" 2> $ERROR_FILE`
if [ -s $ERROR_FILE ]; then
        $UI --title="抓图失败!详细错误信息如下:" --text-info --filename=$ERROR_FILE --width="500"
else
        $UI --info --text="抓图成功!文件保存在$FILE。"
fi 
窗口截图(或者叫选择性截图)png格式:

代码: 全选

#!/bin/bash
UI="zenity --title="抓图工具""
TIME=`date '+%Y-%m-%d-%H-%M'`
ERROR_FILE="${HOME}/screenshot/error_message.txt"
FILE=`$UI --file-selection --title="选择需要保存抓图文件的位置" --save --filename="${HOME}/screenshot/screenshot-${TIME}.png"`
if [ -z $FILE ]; then
        exit;
fi
#清空错误文件
echo > $ERROR_FILE
RESULT=`scrot -q1 -s "$FILE" 2> $ERROR_FILE`
if [ -s $ERROR_FILE ]; then
        $UI --title="抓图失败!详细错误信息如下:" --text-info --filename=$ERROR_FILE --width="500"
else
        $UI --info --text="抓图成功!文件保存在$FILE。"
fi 
这里还要推荐一个快捷方式,毕竟用命令行来启动这些脚本还是繁琐了一点,现在就把它集成到我们的gnome的截图热键上。
首先保存全屏截图的脚本,保存为scrot,保存窗口截图脚本,保存为scrot-window。
打开gconf-editor,找到

代码: 全选

/apps/metacity/keybinding_commands/command_screenshot
修改键值为你的脚本路径,例如:

代码: 全选

/home/yohu/scripts/scrot
再修改窗口截图,找到

代码: 全选

/apps/metacity/keybinding_commands/command_window_screenshot
修改键值为你的脚本路径,例如:

代码: 全选

/home/yohu/share/scripts/scrot-window
好了,这样就全部完成了。
现在只要你按截图键就是print screen sysrq键,就可以截图了,如果要截窗口的图,按alt+截图键,然后在选择保存路径以后,在你要截的窗口上点一下,就可以了。
推荐使用jpg那个,文件比png小非常多,而且效果也不是很差,png那个脚本,我把压缩比开到最大,所以可能反应相对会慢些,因为截图完还需要处理图片。

发表于 : 2007-02-03 23:47
skyx
scrot
现在回湖南老家了,家里的电脑只有xp,没功夫装ubuntu,所以没法试。

弱弱的问一下,在纯终端下,scrot是否可以用?

发表于 : 2007-02-03 23:52
yohu
skyx 写了:
scrot
现在回湖南老家了,家里的电脑只有xp,没功夫装ubuntu,所以没法试。

弱弱的问一下,在纯终端下,scrot是否可以用?
这个无论是在终端下还是热键使用都是一样的,也不会影响原先的scrot的使用。

发表于 : 2007-02-03 23:54
yohu
楼上难道是问tty?tty下是不能使用的。

发表于 : 2007-11-04 19:26
imacee
好像不用那么麻烦哦, 看这个:

http://hi.baidu.com/fufay/blog/item/942 ... 4df39.html