2011-11-22 86 views
4

我希望能够每秒一次在屏幕上拍摄特定区域的屏幕截图,并将文件命名为MMDDYYYYHH:MM:ss是可能的使用命令行和程序。我想用这样的脚本每秒一次在屏幕上拍摄一个特定区域的屏幕截图

for((i=0;i<1000;i++)) 
do 
import -window root screenshot-$(date '+%d%b%y-%N').png 
sleep 5m 
done 

,但我不知道的命令来访问程序来改变屏幕上的区域,当保存到一个文件限制了图像质量。 PS:我愿意使用不同的程序,如果它能工作的话。我正在使用Linux Ubuntu 10.04 64位。

谢谢

+0

有趣的问题。我很好奇你为什么需要这个?如果您正尝试创建交互式会话的动画(我只是在这里猜测),那么有更好的方法来创建屏幕录像 - http://www.linuxhaxor.net/?p=815 –

回答

8

你可以使用-crop WxH+X+Y选项import命令指定的屏幕区域。和-quality选项用于输出的质量/压缩级别。是这样的:

import -window root -crop 200x300+100+15 -quality 100 $(date +%Y%m%d-%H%M%S).png 

注意-quality选项.png.jpg格式具有几乎相反的含义:对PNG值10的意思是“较少压缩”(大尺寸),而值100 - “最大压缩”(最小尺寸)。另一方面,对于jpg来说,10的值意味着“较小的质量”(较小的尺寸),而100的意味着“最大的质量”(最大的尺寸)。

+1

谢谢,这很好。我用快门来获得坐标 –

2

这是我用过的,以防万一它可能会帮助下一个人。 我使用了快门(screengrab程序)并选择了选项来获取正确的坐标,并将它们放在下面的脚本中。

#!/bin/bash 
for((i=1;i<10;i++)) 
do 
    import -window root -crop 454x394+69+269 -quality 200 $(date +%m%d%Y-%H%M%S).png 
    echo $i 
    #type this in a terminal to run  ./timed.sh 
sleep 1 
done