December 2007 Archives

通过苏菲的世界看我们的世界

December 24, 2007 12:28 PM

看一个人的生活有多无聊,看看他做的事就知道了。比如说我,现在又看perl,学习shell脚本,还重新拿起了厚厚的C语言。又比如我看完了已经买了至少一年半,两次拿起来都没有看完的《苏菲的世界》。基本上,哲学都是晦涩难懂的。对作者来说,要把漫长的西方哲学史,和各个时代的哲学大师的思想读懂并用通俗的语言告诉读者真不是一件简单的事。对读者来说,只看一遍就想把从苏格拉底到萨特,这些对人类的思想有过重要影响的哲学家的思想都记住也是不可能的,不过仍有一些哲学家的观点让人印象深刻。

看了这本书,我了解了西方的民主为什么会发展到现在这么完善的程度,那是因为他们起步也比较早。在法国启蒙运动时期,哲学家孟德斯鸠就提出了政权分立的观念,而英国哲学家洛克最早强调立法权与行政权分立以防止专制政治。这些观点的提出,到现在已经有两三百年的时间了。

马克思那一段我也读得比较仔细,要知道我们一直坚持的是马克思主义。马克思主义在当时无疑具有进步意义。我说“当时”的一个原因是,那时候的工人阶级和资产阶级的矛盾是激烈的。我说“当时”的另外一个原因是,黑格尔也说过,世界上是没有绝对的真理的。思想(或理性)的历史就像一条河流,河流的流动受到上流河水涨落和漩涡的影响,你永远无法宣称任何一种思想永远是对的。不过即使到了现在,我们的政治(对,就是政治,历史书也许也有一些,但是不是哲学书),告诉我们,所有的哲学体系都是有漏洞,只有马克思主义是最正确的。

我认为,哲学是一门寻找人类的本源和寻找真理的学问。在西方,教会一口咬定是上帝创造了人类,但是,随着科学技术的发展,上帝造人说被一次次的质疑直到被推翻。看完这本书,我也有一种很奇怪的感觉。我们人类,竟然起源于宇宙大爆炸之后那“一小摊热热的水”,各种无机物在闪电作用下生成的一个蛋白质化合物,经过几十亿年的进化,现在竟是如此的精密。而我们夜晚看到的星星,他们的光辉到达我们的眼睛虽然是同时的,可是有的已经经历了几光年的路程,有的经历了几十光年。一个星空,同时看到的却是不同时期的景象,真是一件神奇的事情。

哲学,有时很枯燥,有时又很有趣,真是矛盾。

用script-fu实现gimp批处理

December 4, 2007 7:57 AM

Gimp是开源的图像处理工具。利用gimp除了可以进行一般的图片处理工作,比如对图片修饰、裁剪等工作,还可以进行图片的批量处理。Gimp所提供的功能可以通过调用script-fu编写的函数实现。Script-Fu采用SIOD (Scheme In One Defun)作为解释器,类似于windows下面的宏,可以进行批量工作。

也就是说,通过调用gimp提供的函数,而不是直接在程序的图形界面上进行操作,从而实现图像处理自动化。

以下简单介绍用script-fu实现图片批处理的一般步骤,操作平台为linux或者unix,脚本可以实现将tif格式的图片转换成同名的gif和jpg格式的图片。本脚本在gimp-2.0和gimp-2.2下调试通过。

1 编写脚本。

将脚本存为batch-pic2min.scm。其中gimp内置函数的命令和参数可以通过procedure browser查找,路径为:Xtns=>procedure browser。


(define (batch-pic2min pattern)
(set! filename pattern)
(set! image (car (gimp-file-load 1 filename filename)))
(set! picname (strbreakup filename "."))
(set! picname (unbreakupstr (butlast picname ".")))
(set! jpgname (string-append picname ".jpg"))
(set! gifname (string-append picname ".gif"))
(set! drawable (car (gimp-image-flatten image)))
(file-jpeg-save 1 image drawable jpgname jpgname 0.85 0 1 1 "No comment!" 2 1 0 0)
(gimp-image-convert-indexed image FS-DITHER MAKE-PALETTE 255 FALSE FALSE "")
(gimp-file-save 1 image drawable gifname gifname)
(gimp-image-delete image)

2 将batch-pic2min.scm保存在gimp设置目录~/.gimp-2.0/scripts下面(针对gimp-2.0版本),对于gimp-2.2版,存放路径为~/.gimp-2.2/scripts。

3 调用脚本。比如要把名为sample.tif的图片转换成sample.gif和sample.jpg,可以在命令提示符下,调用gimp:

$ gimp -i -b '(batch-pic2min "sample.tif")' '(gimp-quit 0)'

结合shell脚本调用就可以实现批量修改图片格式的目的。