
Ben 写了一个 python 脚本——WebCam,区区百十行代码,实现了从网络或本地目录抓取多幅图片并随机拼合到一起,所生成的图片可以作为漂亮的桌面墙纸。这个脚本程序虽然不是非常智能,但是它可以作为一个 python 编程示例供初学者借鉴。您也可以尝试做一个 Lua 或 Ruby 版本 ![]()
这个脚本的全部代码如下:
要运行该脚本,需要您的系统中已经安装 imagemagick(一般 GNU/Linux 会默认为您安装该软件包)。
首先将上述代码复制到 webcam 文件并保存;然后,为该文件的添加可执行权限:
在使用该脚本之前,需要将所要获取图片的地址信息写入 .webcam_config 文件,例如:
然后,只需要执行 webcam 脚本,便可以在 $HOME/Pictures/Wallpapers 目录(若无该目录,请自行创建)中生成合成图片。上面向 .webcam_config 文件写入的四幅图地址,第一幅与第四幅图位于我的本地目录,而其它两幅均来自网络。每幅图片的地址后面均尾随 ":::" 符号,它是用来间隔图片地址与图片标签名的。这些图片的合成效果如下:

按照上述步骤正确操作,最终可以得到合成图片。不过,如果图片标签名是中文的话,那么最终的合成图中每幅小图的标签应该是一串问号或乱码。这是因为 webcam 脚本是通过调用 imagemagick 图片处理工具箱中的 montage 程序实现图片合成的,如果在图片中使用了中文标签名,那么需要设定中文字体方能在合成图中正确显示中文。要解决这个问题,需要在 webcam 脚本中找到以下代码段:
然后在其中添加字体设置代码:
这样,这个问题便解决了。
评论 (6)
is-Programmer 是一个面向 Linux 爱好者与程序员的 Blog 系统,具有简洁的风格,方便的代码高亮和数学公式插入功能,适合撰写学习笔记和技术文档。
© is-Programmer.com All rights reserved. | Power by Chito 1.1.4
2009年4月25日 16:07
COOL!
2009年4月25日 17:58
漂亮!
2009年5月01日 11:21
很喜欢这个网站,每次我要找主题都会来这里看一看,呵呵
2009年5月09日 13:25
不错
另外,论坛风格还是这样好
2009年7月11日 13:11
报错:
Traceback (most recent call last):
File "./webcam", line 85, in <module>
url_fp = urllib2.urlopen(url)
File "/usr/lib/python2.6/urllib2.py", line 124, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.6/urllib2.py", line 383, in open
response = self._open(req, data)
File "/usr/lib/python2.6/urllib2.py", line 401, in _open
'_open', req)
File "/usr/lib/python2.6/urllib2.py", line 361, in _call_chain
result = func(*args)
File "/usr/lib/python2.6/urllib2.py", line 1226, in file_open
return self.open_local_file(req)
File "/usr/lib/python2.6/urllib2.py", line 1262, in open_local_file
raise URLError(msg)
urllib2.URLError: <urlopen error [Errno 2] No such file or directory: '/home/garfileo/Winter.jpg'>
2009年7月11日 14:39
@guowei: 对配置文件根据你的情况进行自适应修改