Linux下也许没有很好的截图工具,但是你可以打造最符合你需求的工具。本文将介绍如何用Python写一个上传图片到flickr的脚本,并编写相应bash脚本使其更易于使用。
以下代码在Arch Linux下测试通过。
准备工作
你需要安装一些软件:
sudo pacman -S python-pip xsel scrot
sudo easy_install-2.7 flickrapi
其中python-pip就是安装easy_install命令。
程序代码
以下是upload2flickr的源代码
02
03 import flickrapi
04 import flickrapi.shorturl
05 import sys
06
07 api_key = '2f219f9746e87b68dfe4eec9c695d6e9'
08 api_secret = '3e635cb917644339'
09
10 if len(sys.argv) >= 2:
11 flickr = flickrapi.FlickrAPI(api_key, api_secret)
12 (token, frob) = flickr.get_token_part_one(perms='write')
13 if not token: raw_input("Press ENTER after you authorized this program")
14 flickr.get_token_part_two((token, frob))
15
16 if len(sys.argv)==2:
17 result = flickr.upload(filename=sys.argv[1],tags='Quick_Screenshot')
18 elif len(sys.argv)==3:
19 result = flickr.upload(filename=sys.argv[1],title=sys.argv[2],tags='Quick_Screenshot')
20
21 print flickrapi.shorturl.url(result.find('photoid').text)
22 else :
23 print "Error Parameter"
以下是sshot脚本
02
03 FPATH="/tmp/Quick_Screenshot.png"
04
05 scrot -bs $FPATH
06
07 if [ $# == 0 ]
08 then
09 URL=$(upload2flickr $FPATH)
10 else
11 URL=$(upload2flickr $FPATH "$1")
12 fi
13
14 if [ $# == 2 ]
15 then
16 if [ $2 == "-t" ]
17 then
18 tweet "$1 $URL"
19 fi
20 fi
21
22 echo $URL | xsel -b -i
23
24 notify-send '<span color="green" size=”18000″>The screenshot is uploaded to '$URL'</span>'
用如下命令完成以上两个命令的安装工作
sudo wget http://micbase.com/wp-content/uploads/2011/04/upload2flickr -P /usr/bin
sudo wget http://micbase.com/wp-content/uploads/2011/04/sshot -P /usr/bin
sudo chmod +x /usr/bin/upload2flickr
sudo chmod +x /usr/bin/sshot
其中tweet命令也是自建命令,请参考用Python实现从命令行发twitter;upload2flickr中的API KEY是我自建的一个app,你也可以用自己的替换。
使用方法
sshot截图,运行该命令后,用鼠标拖选一个区域后,程序就会自动截图并上传,并在桌面提示结果,而且复制图片URL至剪切板。
sshot
sshot截图并添加标题
sshot title
sshot截图并添加标题,同时在twitter中发送
sshot title -t
实际上upload2flickr命令也可以单独使用
upload2flickr快速上传图片
upload2flickr path-of-file
upload2flickr上传图片并添加标题
upload2flickr path-of-file title
另外,如果使用awesome的话,在rc.lua中添加一个快捷键绑定,实现快捷键截图,非常方便。
1 comment