[分享]截图脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
yohu
帖子: 955
注册时间: 2006-12-18 17:04
来自: 福建泉州
送出感谢: 0
接收感谢: 1 次

[分享]截图脚本

#1

帖子 yohu » 2007-02-03 23:39

根据坛子里面某位朋友(不好意思忘记是哪位了)的脚本修改的,那位朋友用的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那个脚本,我把压缩比开到最大,所以可能反应相对会慢些,因为截图完还需要处理图片。
上次由 yohu 在 2007-02-03 23:57,总共编辑 2 次。
拥有超级牛力的搜索引擎:
http://www.google.com/linux
http://www.google.com/
头像
skyx
论坛版主
帖子: 9203
注册时间: 2006-12-23 13:46
来自: Azores Islands
送出感谢: 0
接收感谢: 1 次
联系:

#2

帖子 skyx » 2007-02-03 23:47

scrot
现在回湖南老家了,家里的电脑只有xp,没功夫装ubuntu,所以没法试。

弱弱的问一下,在纯终端下,scrot是否可以用?
no security measure is worth anything if an attacker has physical access to the machine
yohu
帖子: 955
注册时间: 2006-12-18 17:04
来自: 福建泉州
送出感谢: 0
接收感谢: 1 次

#3

帖子 yohu » 2007-02-03 23:52

skyx 写了:
scrot
现在回湖南老家了,家里的电脑只有xp,没功夫装ubuntu,所以没法试。

弱弱的问一下,在纯终端下,scrot是否可以用?
这个无论是在终端下还是热键使用都是一样的,也不会影响原先的scrot的使用。
拥有超级牛力的搜索引擎:
http://www.google.com/linux
http://www.google.com/
yohu
帖子: 955
注册时间: 2006-12-18 17:04
来自: 福建泉州
送出感谢: 0
接收感谢: 1 次

#4

帖子 yohu » 2007-02-03 23:54

楼上难道是问tty?tty下是不能使用的。
拥有超级牛力的搜索引擎:
http://www.google.com/linux
http://www.google.com/
imacee
帖子: 31
注册时间: 2005-11-02 11:54
送出感谢: 0
接收感谢: 0
联系:

#5

帖子 imacee » 2007-11-04 19:26

好像不用那么麻烦哦, 看这个:

http://hi.baidu.com/fufay/blog/item/942 ... 4df39.html
imacee's weblog: http://imacee.com/blog/
回复

回到 “Shell脚本”